0

我有一个带有模块mod1的页面html1.html

[html1.html]
<html lang="en" ng-app="mod1">
...
<script src="scripts/services/Data.js"></script>

Data.js是mod1的工厂

[Data.js]
angular.module('mod1').factory('Data',[function(){
...
}]);

然后我与模块mod2的第二页html2.html相同,并且我还想使用与以前相同的工厂

[html2.html]
<html lang="en" ng-app="mod2">
...
<script src="scripts/services/Data.js"></script>
<script src="scripts/services/Train.js"></script>

Train.jsmod2的工厂,然后结合mod1mod2我执行以下操作

[Train.js]
var mod2 = angular.module('mod2',[angular.module('mod1')]);
mod2.factory('Train',[function(){
...
}]);

但是 angular 找不到模块mod1。我错过了什么?

* html1.htmlhtml2.html都是来自同一个 Electron 主应用程序的渲染器

4

1 回答 1

1

模块依赖由名称指定,所以在Train.js

angular.module('mod2', ['mod1'])

您只需要包含定义mod1的文件,即具有

angular.module('mod1', ['maybe', 'some', 'deps', 'here'])

您将该文件html2.html以及任何其他带有提供程序的文件(如Data.js)包含在内,并且该模块中的所有内容都将可用。

大概您已经mod1Data.js或另一个文件中定义了模块。再次定义它Train.js会用一个新的空名称覆盖已注册的名称。

于 2016-11-30T01:24:30.530 回答