考虑以下示例。他们的工作方式不同吗
.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 + '!';
};
}]);
他们为我输出相同的内容,我只是不明白为什么我们把它放在那里。有时我必须把它作为工作的对象。为什么要定义两次?
答案 0 :(得分:6)
这是一个有趣的问题。答案是在当地环境中按预期工作的事情。但..
当您为生产版本缩小/混淆JavaScript文件时,数组表示法很有用。在这种情况下,参数$ scope可能会重命名为$ s,但因为我们将字符串'$ scope'定义为第一个参数,所以Angular知道对该控制器的第一个依赖是$ scope object。
因此,除非您正在编写出于内部目的的内容,否则请使用建议的数组表示法! :)
请参阅:http://viralpatel.net/blogs/angularjs-controller-tutorial/