簡體   English   中英

RequireJS模塊未加載依賴項

[英]RequireJS module not loading dependencies

我在使用requireJS加載模塊時遇到問題。 我有兩個文件:

文件1:app1 / js / utils / commons / commons.js

define("utils/commons/commons",
    [
        "../../../../app2/MenuModule"
    ], function (MenuModule) {
//MenuModule is undefined here
var app = angular.module('commons', ['MenuModule']);

});

File2:app2 / MenuModule.js

define("../../../../app2/MenuModule",
    [
        "../../../../app2/MenuController",
        "../../../../app2/MenuRestProvider"

    ], function (MenuController,
    MenuRestProvider) {

var app = angular.module('MenuModule', []);

app.factory('MenuRestProvider', MenuRestProvider);
app.controller('MenuController', MenuController);

return app;

});

關鍵是:File1加載File2,然后運行File2中的'define'函數。 不會獲取File2的依賴關系,並且不會評估傳遞給'define'函數的函數。 您能看到導致此問題的原因嗎?

我認為您將路徑與模塊ID混淆了。 相互混淆很容易,因為路徑最終導致根據模塊的定義方式來定義moduleID,但是當您將相對符號放入模塊引用中時,不要考慮“沿路徑走”,而要考慮“移動”模塊層次結構。

所有這些意味着您需要與我們共享您的路徑配置,以便我們可以看到如何將引用的模塊ID轉換為加載路徑。

也要同意:將moduleID直接放在define()調用中有代碼味道。 您應該讓amd加載程序為您定義moduleID(通過使它們成為匿名模塊)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM