缩小这两段代码有什么区别?
What is the difference in minifying these two pieces of code?
我有以下控制器的非缩小版和缩小版代码:
非缩小版本代码:
phonecatApp.controller('PhoneListCtrl', function PhoneListCtrl($scope, $http) {
//code for controller
});
缩小版本代码:
phonecatApp.controller('PhoneListCtrl', ['$scope', '$http',function PhoneListCtrl($scope, $http) {
//code for controller
}]);
我不知道为什么首选缩小版本代码?缩小版和非缩小版代码有什么区别?
缩小重命名变量(除其他外)。您的第一个示例在缩小后将不再有效,因为 angular 在 $scope
和 $http
重命名时不知道要注入什么。你的第二个例子,使用数组语法,告诉 angular 要注入什么而不考虑变量名。
(你的两个例子都有语法错误:PhoneListCtrl($scope, $http)
应该是 function PhoneListCtrl($scope, $http)
。)
注意:当你像你一样使用命名函数时,还有另一个缩小安全的选项angular代码:
phonecatApp.controller('PhoneListCtrl', PhoneListCtrl);
PhoneListCtrl.$inject = ['$scope', '$http'];
function PhoneListCtrl($scope, $http) {
//code for controller
}
最后,如果您真的更喜欢您的第一个示例,您可以使用 ng-annotate 预处理您的 angular 代码并使其缩小安全。
我有以下控制器的非缩小版和缩小版代码:
非缩小版本代码:
phonecatApp.controller('PhoneListCtrl', function PhoneListCtrl($scope, $http) {
//code for controller
});
缩小版本代码:
phonecatApp.controller('PhoneListCtrl', ['$scope', '$http',function PhoneListCtrl($scope, $http) {
//code for controller
}]);
我不知道为什么首选缩小版本代码?缩小版和非缩小版代码有什么区别?
缩小重命名变量(除其他外)。您的第一个示例在缩小后将不再有效,因为 angular 在 $scope
和 $http
重命名时不知道要注入什么。你的第二个例子,使用数组语法,告诉 angular 要注入什么而不考虑变量名。
(你的两个例子都有语法错误:PhoneListCtrl($scope, $http)
应该是 function PhoneListCtrl($scope, $http)
。)
注意:当你像你一样使用命名函数时,还有另一个缩小安全的选项angular代码:
phonecatApp.controller('PhoneListCtrl', PhoneListCtrl);
PhoneListCtrl.$inject = ['$scope', '$http'];
function PhoneListCtrl($scope, $http) {
//code for controller
}
最后,如果您真的更喜欢您的第一个示例,您可以使用 ng-annotate 预处理您的 angular 代码并使其缩小安全。