我不明白这两种angularjs控制器定义的区别, 我试过以下代码,发现两者都在工作
myApp.controller('GreetingController', ['$scope', function($scope) {
$scope.greeting = 'Hola!';
}]);
myApp.controller('GreetingController', function($scope) {
$scope.greeting = 'Hola!';
});
答案 0 :(得分:6)
第一个关心缩小。
在此控制器中:
myApp.controller('GreetingController', function($scope) {
$scope.greeting = 'Hola!';
});
参数将被最小化为一些短值,并且依赖注入将不起作用。
请看:
答案 1 :(得分:1)
第二个在缩小后将不再起作用,因为缩小器将重命名参数以尽可能多地占用带宽:
myApp.controller('GreetingController', function(a) {
a.greeting = 'Hola!';
});
由于angular使用参数的名称来知道要向控制器注入什么,因此会失败。
第一种语法是避免这个问题的一种方法。
我使用ngAnnotate以便在缩小之前将第二种语法自动转换为第一种语法,作为构建过程的一部分