从日志中,Backbone现在注册AMD(Require.js)自v1.1.1以来的版本。Backbone AMD with requireJs
好,所以我尝试做一个模块相同,但有一些我不明白。
如果我们看section 4 of annotated sources的来源,模块不会返回全局骨干。
没有需要垫片和window.Backbone是可用的。但是骨干怎么不能被定义?
//定义骨干模块
define(['underscore', 'jquery', 'exports'], function(_, $, exports) {
root.Backbone = factory(root, exports, _, $);
});
//要求骨干模块
require(['backbone'], function (Backbone) {
Backbone // is not undefined ?
});
//模态模块定义
define(['jquery'], function ($) {
root.Modal = factory(root, {}, $);
});
//需要模态模块
require(['modal'], function (Modal) {
Modal // undefined
});
进入我的模块(使用相同的结构),当我需要我的模块,我得到了undefined
如果我不返回任何东西。
我必须返回root.Modal才能使其正常工作。 return root.Modal = factory(root, {}, $);
的主要问题是“怎么能当模块不返回任何需要的模块?”
我已经失踪requireJS东西,但我并不觉得。
http://backbonejs.org/docs/backbone.html#section-4
永远不要使用窗口。Backbone,如果它注册为AMD模块,则不需要“填充”,您的文件被命名为“backbone.js”? –
我不使用window.Backbone :) 你说我的模块文件吗?我有相同的文件结构modal.js。 –
如果你在模块内部调用“backbone”,你必须拥有“backbone.js”文件,除非你已经在这个名字之前映射了... –