在下面的插件中,正确调用了load方法,但永远不会触发内部回调:
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)永远不会发生。怎么样?
答案 0 :(得分:1)
它对我有用,如下所示:
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/
也许你的文件结构有错误?