当我们创建控制器,服务等组件时,AngularJs中方括号的用途是什么?我在示例中看到了[' ngRoute',' ngFileUpload']。有什么用?
答案 0 :(得分:4)
它定义了角度依赖注入的方式,因此您可以在不破坏它的情况下解析源代码。
例如,控制器可以定义两个依赖关系:
angular.module('App').controller('SomeController', ['ngRoute', 'ngFileUpload', function (route, fileUpload) {
console.log('this is ngRoute', route);
console.log('this is fileUpload', fileUpload);
}]);
angular将实例化控制器,其依赖关系与数组中的顺序相同。所以你给这些论点的名字并不重要。现在想象一下,你想要将代码弄清楚,使它像这样:
angular.module('App').controller('SomeController', ['ngRoute', 'ngFileUpload', function (a, b) {
console.log('this is ngRoute', a);
console.log('this is fileUpload', b);
}]);
您仍将按预期获得依赖项。 但是,如果您使用此表示法:
angular.module('App').controller('SomeController', function (ngRoute, ngFileUpload) {});
您无法重新编写重命名函数参数的代码。
答案 1 :(得分:0)
用于注释。如果您使用任何缩小或混淆软件,您的注射将被重命名。数组中的注释将允许角度映射到正确的方法。
$injector
上的角度文档中提供了更多信息:https://docs.angularjs.org/api/auto/service/ $ injector
答案 2 :(得分:-1)
它没有特殊的“AngularJS”意义。它表示一个Javascript数组,通过执行['ngRoute', 'ngFileUpload']
,您传递的元素数组(或本例中的字符串)将被传递给您正在调用的函数。
angular.module('myapp', ['ngRoute', 'ngFileUpload']);
现在由module
函数来决定它如何解释你传递的数组。但要回答你的问题,它只是一个数组。
答案 3 :(得分:-1)
模块定义中的[]
参数可用于定义依赖模块。
例如,
angular.module('myApp', [])
中的空数组。这个数组是myApp所依赖的模块列表。