我们目前有一个针对angularjs应用程序的设置,其中有一个名为“app.js”的文件,其中包含
var app = angular.module('VolumeOutputOptions', [
'someDirectiveModule',
'someServiceModule'
]);
除了像someDirectiveModule这样的应用程序之间共享的代码,几乎每个类都依赖于这个全局变量。这有时会导致添加新依赖项的问题,但事实证明“app”用于尚未包含该依赖项的上下文中。此外,全局变量,bleugh。
有没有更好的方法在应用的所有指令和控制器之间共享单个模块?例如,
angular.module('VolumeOutputOptions').directive(...);
angular.module('VolumeOutputOptions').controller(...);
是两个具有相同名称的独立模块,还是会进行角度检测和合并?
答案 0 :(得分:1)
如果你喜欢
angular.module('VolumeOutputOptions').directive(...);
angular.module('VolumeOutputOptions').controller(...);
要像这样使用,必须有angular.module('VolumeOutputOptions', [])
之类的东西来创建模块才能使用它。
然后将它们分配给同一个模块VolumeOutputOptions
。
如果使用第二个数组参数定义类似angular.module('moduleName', [])
的模块,那么只有angular创建一个新模块。如果没有传递数组参数,则angular将引用前一个使用相同名称声明的模块。