在AngularJs中共享模块

Sharing Modules in AngularJs

本文关键字:模块 共享 AngularJs      更新时间:2023-09-26

我们现在有一个angularjs应用程序的设置,其中有一个名为"app.js"的文件保存着

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

除了像someDirectiveModule这样的应用之间共享的代码,几乎每个类都依赖于这个全局变量。这偶尔会导致添加新依赖项的问题,但事实证明,"app"是在未包含该依赖项的上下文中使用的。还有全局变量,bleugh.

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

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

是两个同名的独立模块,还是angular会检测并合并它们?

如果使用like

angular.module('VolumeOutputOptions').directive(...);
angular.module('VolumeOutputOptions').controller(...);
要像这样使用

,在使用之前必须有一个类似angular.module('VolumeOutputOptions', [])的东西来创建模块。则将它们赋值给同一个模块VolumeOutputOptions

如果你用第二个数组参数来定义一个像angular.module('moduleName', [])这样的模块,那么angular只会创建一个新模块。如果没有传入数组参数,那么angular会引用前面用相同名称声明的模块。