裏面我main.js文件我的代碼:無法加載需要的js文件使用requirejs
define(['require'], function(require) {
require([
'../libs/requirejs/plugins/domReady',
'../core',
'../ndn.2',
'../Ndn/Widget'
],
function(domReady) {
// require('../Ndn/Widget'); // I tried this too, but it doesn't solve my problem
console.log('Should have required everything...');
domReady(function() {
console.log('About to call init()');
init();
});
}
)});
function init() {
// Begin fetching this widget's delivery settings
Ndn_Widget.fetchDeliverySettings();
// ... Other code here ...
}
在我的N dn/Widget.js文件,我有以下幾點:
var Ndn_Widget;
define(['require'], function(require) {
require(['../ndn.2', './ServerInterface'], function() {
/**
* An associative array for the different delivery settings
* @var Object
*/
var deliverySettings = {};
Ndn_Widget = {
fetchDeliverySettings: function() {
// ... code here
console.log('Finished defining Ndn_Widget.');
}
};
});
});
我我希望我傳遞給main.js中的define()函數的匿名函數只會在加載「../Ndn/Widget.js」文件後執行,但事實並非總是如此。
這是我的console.log語句的示例:
Should have required everything...
About to call init()
Uncaught TypeError: Cannot call method 'fetchDeliverySettings' of undefined
Just finished defining Ndn_Widget.
誰能告訴我什麼,我做錯了什麼?先謝謝你!
我不知道如何使用'需要( '...' )'沒有回調。我會想象這通常不是你想要的。 – 2013-03-27 19:58:02
我不是,它只是糖語法 - http://requirejs.org/docs/whyamd.html#sugar – 2013-03-27 21:00:02
好的。好的提示。從我純粹的AMD背景來看,這似乎有點奇怪。 Upvoted! – 2013-03-27 21:45:34