Requirejs 要求给予';未加载';尽管文件已加载,但仍显示消息

Requirejs 要求给予';未加载';尽管文件已加载,但仍显示消息,requirejs,amd,Requirejs,Amd,我有一个模块定义如下: define( ['backbone', 'View/Sidebar', 'View/ControlBar'], function() { ... } ); loadView: function(name, bootstrap_function, into) { var _class = require('View/'+name); ... } 在该模块中有一个名为loadView的方法,该方法按如下方式分配变

我有一个模块定义如下:

define(
    ['backbone', 'View/Sidebar', 'View/ControlBar'],
    function() {
        ...
    }
);
loadView: function(name, bootstrap_function, into) {
    var _class  = require('View/'+name);
    ...
}
在该模块中有一个名为loadView的方法,该方法按如下方式分配变量:

define(
    ['backbone', 'View/Sidebar', 'View/ControlBar'],
    function() {
        ...
    }
);
loadView: function(name, bootstrap_function, into) {
    var _class  = require('View/'+name);
    ...
}
因此,我们可以看到define调用(第一个参数)正在加载
View/Sidebar
View/ControlBar
。当我使用
require('Sidebar')
时,我没有收到任何错误,但是如果我使用
require('ControlBar')
我会收到以下错误:

Error: Module name "View/ControlBar" has not been loaded yet for context: _
()


我已经重新编写、复制和粘贴,验证它是否已加载到Firebug中,等等,但我一生都无法找出为什么我100%的时间都会出现此错误。

我认为这与参数的调用方式有关。我发现下面的语句抛出了一个错误

define(
    ['mymodule1', 'mymodule2'],
    function(mod1, mod2) {
        ...
        var x = require('mymodule2');
        ...
    }
);
鉴于以下情况不适用:

define(
    ['mymodule1', 'mymodule2'],
    function() {
        ...
        var x = require('mymodule2');
        ...
    }
);

区别在于加载的模块是否声明为函数的参数。至少在我看来,这是一种方式,然而,它没有多大意义…

我没有从您发布的代码中看到任何错误。是否可以发布视图/控制栏、视图/侧栏?也许View/ControlBar中有一个循环引用需要这个模块?不幸的是,由于我发布了这个模块,代码已经向前移动了很多,我不确定哪些提交与此相关。然而,这完全有可能是一个循环引用,所以可能就是这样。谢谢