我注意到一個奇怪的行爲與RequireJS試圖將單模值直接賦值給一個變量,像這樣的:RequireJS:需要一個模塊返回一個函數,而不是一個對象
App.tables = require(['appTables']);
這樣做的結果調用是App.tables包含這樣的功能:
localRequire(deps, callback, errback)
,而我的appTables.js看起來是這樣的:
define({
users: {
name: 'tables.users',
data: {
name: {
visible: true,
hide: false,
display: 'Name'
},
surname: {
visible: true,
hide: false,
display: 'Surname'
}
}
}
});
事實上,試圖將其分配中的經典方式運行:
require(['appTables'], function(appTables) {
App.tables = appTables;
});
那麼,什麼是錯我的第一種方法?爲什麼它會返回一個函數而不是對象?謝謝!
你應該通過該模塊的名稱爲'require',而不是一個數組。所以:'App.tables = require('appTables');'應該按預期工作。 –
感謝您的回覆,但它給了我以下錯誤:「錯誤:模塊名稱」appTables「尚未加載上下文:_。使用require([])」 – Ingro
您需要將'require'包裝在當您使用簡化的CommonJS語法時,可以使用'define'塊。所以:'define(function(require){App.tables = require('appTables'); ...});'應該工作。請參閱:http://requirejs.org/docs/api.html#cjsmodule –