1

次のように定義されたモジュールがあります。

define(
    ['backbone', 'View/Sidebar', 'View/ControlBar'],
    function() {
        ...
    }
);

そのモジュールには、次のように変数を割り当てるloadViewというメ​​ソッドがあります。

loadView: function(name, bootstrap_function, into) {
    var _class  = require('View/'+name);
    ...
}

View/Sidebarしたがって、両方とView/ControlBarがdefine呼び出し(最初の引数)によってロードされていることがわかります。を使用する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%発生する理由を一生理解できません。

4

1 に答える 1

0

これは、引数がどのように要求されるかと関係があると思います。私は以下がエラーをスローすることを発見しました

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

以下はそうではありませんが:

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

違いは、ロードされたモジュールが関数への引数として宣言されているかどうかです。少なくともこれは私には思える方法ですが、あまり意味がありません...

于 2012-08-27T15:31:33.007 に答える