在AngularJs中共享模块

时间:2015-09-24 09:24:06

标签: javascript angularjs

我们目前有一个针对angularjs应用程序的设置,其中有一个名为“app.js”的文件,其中包含

var app = angular.module('VolumeOutputOptions', [
    'someDirectiveModule',
    'someServiceModule'
]);

除了像someDirectiveModule这样的应用程序之间共享的代码,几乎每个类都依赖于这个全局变量。这有时会导致添加新依赖项的问题,但事实证明“app”用于尚未包含该依赖项的上下文中。此外,全局变量,bleugh。

有没有更好的方法在应用的所有指令和控制器之间共享单个模块?例如,

angular.module('VolumeOutputOptions').directive(...);

angular.module('VolumeOutputOptions').controller(...);

是两个具有相同名称的独立模块,还是会进行角度检测和合并?

1 个答案:

答案 0 :(得分:1)

如果你喜欢

angular.module('VolumeOutputOptions').directive(...);

angular.module('VolumeOutputOptions').controller(...);

要像这样使用,必须有angular.module('VolumeOutputOptions', [])之类的东西来创建模块才能使用它。 然后将它们分配给同一个模块VolumeOutputOptions

如果使用第二个数组参数定义类似angular.module('moduleName', [])的模块,那么只有angular创建一个新模块。如果没有传递数组参数,则angular将引用前一个使用相同名称声明的模块。