我正在学习AngularJS,目前正在尝试使用主依赖注入。
当我定义一个控制器时,文档告诉我通过注释指定依赖关系,并将它们列在构造函数的参数列表中是等效的。因此,如果我写的话,我应该得到相同的结果:
angular
.module('myapp.controllers', [])
.controller('MainNavigationController', ['$scope', '$location', function ($scope, $location) {
// ... some code
}]);
或:
angular
.module('myapp.controllers', [])
.controller('MainNavigationController', function ($scope, $location) {
// ... some code
});
是否有任何实际的理由我应该更喜欢前者,因为它似乎是不必要的冗长?
答案 0 :(得分:1)
如果要在缩小代码时保留依赖项,则需要使用此语法(var名称将被替换,因此依赖项将受到影响):
angular
.module('myapp.controllers', [])
.controller('MainNavigationController', function (a, b) {
// ... some code
});
a,b依赖关系不存在......所以代码会崩溃
angular
.module('myapp.controllers', [])
.controller('MainNavigationController', ['$scope', '$location', function (a, b) {
// ... some code
}]);
a,b被绑定到真正的依赖字符串..缩小后确定
答案 1 :(得分:0)
前者用于JavaScript缩小,它会更改参数名称,从而打破基于名称的DI。字符串值“存活”缩小,让Angular“知道”应该将哪个参数绑定到哪个依赖项。
您可以使用后者并使用https://github.com/btford/ngmin在构建时生成字符串数组。