2015-10-17 20 views

回答

4

它的角度依赖注入的方式被定义,所以你可以uglify源代码而不打破它。

例如,控制器可以限定两个依赖这样的:

angular.module('App').controller('SomeController', ['ngRoute', 'ngFileUpload', function (route, fileUpload) { 
    console.log('this is ngRoute', route); 
    console.log('this is fileUpload', fileUpload); 
}]); 

角将实例控制器与所述依赖关系如在数组中的顺序相同。所以这不是你给这个论点的名字。现在想象一下,你想丑化代码,使它像这样:

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

它没有特别的“AngularJS”意义。它代表一个Javascript数组,并且通过执行['ngRoute', 'ngFileUpload'],传递了一组元素(或者这个例子中的字符串),这些元素被传递给你正在调用的函数。

angular.module('myapp', ['ngRoute', 'ngFileUpload']); 

现在是到module函数来决定它如何解释您传递数组。但要回答你的问题,它只是一个数组。

0

它用于注释。如果您使用任何缩小或混淆软件,您的注射将被重新命名。数组中的注释将允许角度映射到正确的方法。

上有$injector在角度文档可用的更多的信息:https://docs.angularjs.org/api/auto/service/ $注射器

-1

在模块定义的[]参数可被用来定义从属模块。

例如,

angular.module('myApp', [])的空数组。这个数组是myApp依赖的模块列表。

相关问题