这两个angularjs控制器定义有什么区别

时间:2015-06-15 06:27:10

标签: angularjs angularjs-controller

我不明白这两种angularjs控制器定义的区别, 我试过以下代码,发现两者都在工作

myApp.controller('GreetingController', ['$scope', function($scope) {
  $scope.greeting = 'Hola!';
}]);

myApp.controller('GreetingController', function($scope) {
  $scope.greeting = 'Hola!';
});

2 个答案:

答案 0 :(得分:6)

第一个关心缩小。

在此控制器中:

myApp.controller('GreetingController', function($scope) {
    $scope.greeting = 'Hola!';
});

参数将被最小化为一些短值,并且依赖注入将不起作用。

请看:

答案 1 :(得分:1)

第二个在缩小后将不再起作用,因为缩小器将重命名参数以尽可能多地占用带宽:

myApp.controller('GreetingController', function(a) {
    a.greeting = 'Hola!';
});

由于angular使用参数的名称来知道要向控制器注入什么,因此会失败。

第一种语法是避免这个问题的一种方法。

我使用ngAnnotate以便在缩小之前将第二种语法自动转换为第一种语法,作为构建过程的一部分