缩小这两段代码有什么区别?

时间:2015-04-03 17:48:27

标签: angularjs minify

我为控制器提供了以下非minfied和minified版本代码:

非缩小版本代码:

phonecatApp.controller('PhoneListCtrl', function PhoneListCtrl($scope, $http) {
   //code for controller
});

缩小版本代码:

phonecatApp.controller('PhoneListCtrl', ['$scope', '$http',function PhoneListCtrl($scope, $http) {
    //code for controller
}]);

我不知道为什么缩小版本代码会被优先考虑?缩小和非缩小版本代码之间有什么区别?

1 个答案:

答案 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来预处理你的角度代码并使其缩小安全性。