在AngularJS中,我看到控制器以两种不同的方式编码。
这样:
myApp.controller('SearchCtrl', ['$scope', '$location',
function($scope, $location) {
// code here
}]);
就这样:
myApp.controller('SearchCtrl', function($scope, $location) {
// code here
});
两者有什么区别?
答案 0 :(得分:4)
这只是允许它,以便在缩小完成时,Angular将能够保持对实际依赖性的引用。所以,如果
myApp.controller('SearchCtrl', function ($scope, $location, MyService) {
// code here
});
缩小了,它会变成:
myApp.controller('SearchCtrl',function(a,b,c){//code here});
由于没有像a,b和c这样的提供者,Angular会废话。当你添加方括号及其缩小时,它就变成了:
myApp.controller('SearchCtrl',['$scope', '$location', 'MyService',function(a,b,c){//code here}]);
Angular知道映射$ scope - > a,$ location - > b,和MyService - >角
希望有所帮助!
答案 1 :(得分:0)
数组语法用于允许缩小代码。如果未使用此代码并且代码被缩小,则缩放器可能会重命名$scope
和$location
,因此依赖注入将失败。