【发布时间】:2012-08-25 00:11:41
【问题描述】:
我有一个模块定义如下:
define(
['backbone', 'View/Sidebar', 'View/ControlBar'],
function() {
...
}
);
在那个模块中有一个叫做 loadView 的方法,它分配一个变量如下:
loadView: function(name, bootstrap_function, into) {
var _class = require('View/'+name);
...
}
所以,我们可以看到 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% 的时间都会出现此错误。
【问题讨论】:
-
我没有从您发布的代码中看到任何问题。是否也可以发布视图/控制栏、视图/侧边栏?也许在需要这个模块的 View/ControlBar 中有一个循环引用?
-
不幸的是,自从我发布此代码以来,代码已经发生了很大变化,我不确定哪些提交与此处相关。但是,完全有可能存在循环引用,所以也许这样做了。谢谢。