我的模块定义如下:
define(
['backbone', 'View/Sidebar', 'View/ControlBar'],
function() {
...
}
);
在该模块中有一个名为loadView的方法,它按如下方式分配变量:
loadView: function(name, bootstrap_function, into) {
var _class = require('View/'+name);
...
}
因此,我们可以看到定义调用(第一个arg)正在加载View/Sidebar
和View/ControlBar
。当我使用require('Sidebar')
时,我没有错误,但如果我使用require('ControlBar')
,我会得到臭名昭着的:
Error: Module name "View/ControlBar" has not been loaded yet for context: _
(http://requirejs.org/docs/errors.html#notloaded)
我已经重新编写,复制并粘贴,验证它已加载到Firebug等等,但在我的生活中无法解决为什么我会100%得到此错误。
答案 0 :(得分:0)
我认为这与如何调用参数需要有关。我发现以下引发了错误
define(
['mymodule1', 'mymodule2'],
function(mod1, mod2) {
...
var x = require('mymodule2');
...
}
);
以下情况不是:
define(
['mymodule1', 'mymodule2'],
function() {
...
var x = require('mymodule2');
...
}
);
不同之处在于加载的模块是否被声明为函数的参数。至少这是我认为的方式,然而,它并没有多大意义......