從日誌中,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」文件,除非你已經在這個名字之前映射了... –