在以下插件中,加载方法是正确调用的,但是内部回调永远不会触发:
define("App/FooLoader", [], function() {
return {
load: function(id, require, callback) {
require(["App/Foo"], function(foo) {
callback(foo);
});
}
}
});
与上述有关
// in Bar.js
require(['App/Fooloader!'], function(foo) { // do stuff with foo });
那:
-
App/FooLoader
已加载,并且执行load
方法 -
App/Foo
已加载,并且执行内部回调 -
App/FooLoader
使用foo
执行App/Foo
的结果。
但是,仅发生(1),回调(2)和(3)从未发生。怎么来?
它对我有效如下:
define("App/Foo", [], function() {
return 'bar';
});
define("App/FooLoader", [], function() {
return {
load: function(id, require, callback) {
console.log('inside load', arguments);
require(["App/Foo"], function(foo) {
console.log('inside require, foo=', foo);
callback(foo);
});
}
}
});
require(["App/FooLoader!"], function(fooload) {
console.log('fooloaded', fooload);
})
我创建了这个JSFiddle来演示:http://jsfiddle.net/fmr3z/1/
也许您的文件结构有错误?