angularJS模块声明中空数组的含义

时间:2015-08-10 16:46:24

标签: javascript angularjs dependency-injection module angularjs-module

在我的previous question中,我了解代码var app = angular.module('myApp', []);将模块app与视图myApp相关联。

我想知道为什么我们在模块声明中使用空数组[]

用于的空数组是什么?

3 个答案:

答案 0 :(得分:19)

Update access_rights set rfidcode=(Select rfidcode from users where name like 'thomas' limit 1) where id_access_rights=3; 是创建一个没有任何模块依赖的新模块。

angular.module('app', [])用于检索名称为angular.module('app')的现有模块。

答案 1 :(得分:14)

  

该数组旨在向您当前的app添加各种模块   在angular.module的第一部分中提到了字符串`,你可以简单地说   说注入各种依赖。

您可以在应用内为n&的每个组件创建一个angular个模块。然后你可以将它们组合成一个单独的应用程序,你可以angular.bootstrap使用ng-app指令在页面上应用它。

示例

假设您的应用程序具有不同的组件,如服务,工厂,过滤器,指令等。您可以为每个组件创建一个模块。只是为了分离关注点。

angular.module('myApp.filters', [])
angular.module('myApp.services', [])
angular.module('myApp.controllers', [])
angular.module('myApp.directives', [])
angular.module('myApp.constants', [])

在向其添加组件时,您可以简单地使用它的特定模块。就像您想要添加服务一样,您只需通过执行

将该服务添加到myApp.services
angular.module('myApp.services').service('example', function(){

})

然后在app.js内部,您可以将所有这些模块组合到一个模块中,如下所示。

angular.module('myApp', [
     'myApp.services', 
     'myApp.controllers', 
     'myApp.directives', 
     'myApp.directives', 
     'myApp.constants'
])

在初始化应用时,你可以简单地在里面使用myApp,这将使所有其他模块可用。

  

用于的空数组是什么?

在您的代码中,您创建的模块不会注入任何依赖项[],这意味着它独立于任何其他angular模块。

  

[]内注入的依赖关系只是导入模块

答案 2 :(得分:6)

Angulars API说Passing one argument retrieves an existing angular.Module, whereas passing more than one argument creates a new angular.Module https://docs.angularjs.org/api/ng/function/angular.module