多次调用angular.module('myModule')
的行为是什么?
例如,我希望在单独的.js文件中定义我的路由和指令。
这样安全吗?
例如:
//routes.js
angular.module('app',['$strap'])
.config(function($routeProvider, $locationProvider) {
...
});
//directives.js
angular.module('app')
.directive('formInput', function() {
...
此外,多次定义依赖项的影响是什么?这是添加剂还是最后一次胜利?
例如:
答案 0 :(得分:34)
angular.module(name [,requires],configFn);
...
requires(可选) - {Array。=} - 如果指定,则创建新模块。如果未指定,则检索模块以进行进一步配置。 - angular.module docs
我会解释如下:您只能定义一次依赖项 - 第一次为特定模块调用angular.module。之后可以多次调用angular.module(),但不能指定requires
选项。
答案 1 :(得分:15)
您应该只创建您的模块一次。根据{{3}},如果您创建一个名称已存在的模块,它将覆盖前一个模块。 (所以最后胜利。)
angular.module('app', []);
您可以根据需要检索您的模块,如果您愿意,可以在单独的文件中。您通常会多次检索模块以声明服务,控制器,指令等。
angular.module('app').service('myService', ...);
angular.module('app').controller('myController', ...);
angular.module('app').directive('myDirective', ...);
在docs中,请参阅“创建与检索”一节。
答案 2 :(得分:5)
我是角色的新手,但这是我的理解:你在每个文件中创建一个带有命名空间模块名称的模块,在你的主模块中你需要这些模块。
// in main app.js file
var app = angular.module('myapp',
['myapp.routers', 'myapp.directives', 'myapp.filters']);
// in filters.js
angular.module('myapp.filters', []).filter(....)
// in routers.js
angular.module('myapp.routers', []).router(....)
// in directives.js
angular.module('myapp.directives', []).directive(....)