繁体   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