角度定义参数两次

时间:2016-01-26 02:39:08

标签: javascript angularjs object controller

考虑以下示例。他们的工作方式不同吗

.controller('MyController',function($scope) {
  $scope.username = 'World';

  $scope.sayHello = function() {
    $scope.greeting = 'Hello ' + $scope.username + '!';
  };
});

Vs

.controller('MyController', ['$scope', function($scope) {
  $scope.username = 'World';

  $scope.sayHello = function() {
    $scope.greeting = 'Hello ' + $scope.username + '!';
  };
}]);

他们为我输出相同的内容,我只是不明白为什么我们把它放在那里。有时我必须把它作为工作的对象。为什么要定义两次?

1 个答案:

答案 0 :(得分:6)

这是一个有趣的问题。答案是在当地环境中按预期工作的事情。但..

  

当您为生产版本缩小/混淆JavaScript文件时,数组表示法很有用。在这种情况下,参数$ scope可能会重命名为$ s,但因为我们将字符串'$ scope'定义为第一个参数,所以Angular知道对该控制器的第一个依赖是$ scope object。

因此,除非您正在编写出于内部目的的内容,否则请使用建议的数组表示法! :)

请参阅:http://viralpatel.net/blogs/angularjs-controller-tutorial/