我为控制器提供了以下非minfied和minified版本代码:
非缩小版本代码:
phonecatApp.controller('PhoneListCtrl', function PhoneListCtrl($scope, $http) {
//code for controller
});
缩小版本代码:
phonecatApp.controller('PhoneListCtrl', ['$scope', '$http',function PhoneListCtrl($scope, $http) {
//code for controller
}]);
我不知道为什么缩小版本代码会被优先考虑?缩小和非缩小版本代码之间有什么区别?
答案 0 :(得分:4)
缩小重命名变量(以及其他内容)。当缩小时,您的第一个样本将不再起作用,因为当重新命名$scope
和$http
时,角度不知道要注入什么。第二个例子,使用数组语法,告诉angular注入什么,无论变量名称如何。
(两个示例中都存在语法错误:PhoneListCtrl($scope, $http)
应为function PhoneListCtrl($scope, $http)
。)
注意:当您按原样使用命名函数时,还有另一种缩小安全角度代码的选项:
phonecatApp.controller('PhoneListCtrl', PhoneListCtrl);
PhoneListCtrl.$inject = ['$scope', '$http'];
function PhoneListCtrl($scope, $http) {
//code for controller
}
最后,如果你真的更喜欢你的第一个例子,你可以使用ng-annotate来预处理你的角度代码并使其缩小安全性。