30

angular.module('myModule')多次调用是什么行为?

例如,我希望在单独的 .js 文件中定义我的路由和指令。

这安全吗?

例如:

//routes.js
angular.module('app',['$strap'])
   .config(function($routeProvider, $locationProvider) {
     ...
   });

//directives.js
angular.module('app')
    .directive('formInput', function() {
...

另外,多次定义依赖关系有什么影响?这是添加剂,还是最后的胜利?

例如:

4

3 回答 3

34

angular.module(名称[,需要],configFn);
...
需要(可选) - {Array.=} - 如果指定,则正在创建新模块。如果未指定,则正在检索模块以进行进一步配置。-- angular.module 文档

我将其解释如下:您只能定义一次依赖关系——第一次为特定模块调用 angular.module 时。之后您可以多次调用 angular.module(),但requires不能指定该选项。

于 2013-01-17T03:41:58.543 回答
16

您应该只创建一次模块。根据文档,如果您创建一个名称已存在的模块,它将覆盖前一个。(所以最后获胜。)

angular.module('app', []);

您可以根据需要在单独的文件中多次检索您的模块。您通常会多次检索您的模块以声明服务、控制器、指令等。

angular.module('app').service('myService', ...);
angular.module('app').controller('myController', ...);
angular.module('app').directive('myDirective', ...);

有关模块的 AngularJS 文档中,请参阅名为Creation 与 Retrieval的部分。

于 2014-12-23T21:29:12.057 回答
6

我是 Angular 的新手,但这是我的理解:您在每个文件中创建一个具有命名空间模块名称的模块,并且在您的主模块中您需要这些模块。

// 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(....)
于 2013-03-05T00:13:25.927 回答