2014-03-02 91 views
0

在这本书中“构建骨干代码RequireJS和木偶模块”通过Sulc D.有一个代码: define(["app", "apps/config/storage/localstorage"], function(ContactManager){ ContactManager.module("Entities", function(Entities, ContactManager, Backbone, Marionette, $, _){ Entities.Contact = Backbone.Model.extend({ urlRoot: "contacts", .....请解释requirejs模块

ContactManage是backbone.Marionette应用程序实例

var ContactManager = new Marionette.Application(); 
  1. 为啥子我从requirejs文档知道,我们应该在[“应用”,“的ContactManager” ...]定义依赖,并通过App和中的ContactManager功能(应用程序,为ContactManager ...),但在上面的代码ContactManager被传递给函数,但它没有被定义为依赖。为什么这样?

  2. 请,还解释了,这段代码的含义:

    ContactManager.module( “实体”,函数(实体的ContactManager,骨干,木偶,$ _){

为什么我们应该创建一个requirejs模块 感谢!

全码:?https://github.com/davidsulc/structuring-backbone-with-requirejs-and-marionette/blob/master/assets/js/entities/contact.js

代码可用guthub https://github.com/davidsulc/structuring-backbone-with-requirejs-and-marionette

回答

0
  1. 由于“应用程序”是第一个宣布的依赖,这将是传递给函数的第一个参数。在上面的代码中,函数的第一个参数是'ContactManager'。因此,ContactManager是该功能范围的应用程序。

  2. 模块报关行创建一个名为“实体”的新模块。在该声明的范围之外,模块可以被引用为ContactManager.Entities。本书对模块为什么很有用有一个很好的解释。最值得注意的是,它们可以根据需要停止并启动,尽可能释放内存。