角度定义参数两次

Ali*_*ice 4 javascript controller object angularjs

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

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

  $scope.sayHello = function() {
    $scope.greeting = 'Hello ' + $scope.username + '!';
  };
});
Run Code Online (Sandbox Code Playgroud)

VS

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

  $scope.sayHello = function() {
    $scope.greeting = 'Hello ' + $scope.username + '!';
  };
}]);
Run Code Online (Sandbox Code Playgroud)

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

小智 6

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

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

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

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