[英]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.