2014-02-17 404 views
0

我想知道是否有兩個下一行,爲什麼要使用其中的一個(如預期兩個工作)AngularJS - 依賴注入

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

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

我把它從官方AngularJS之間的差異教程,我知道有關於此修改的說明,但我不明白它... ​​

在此先感謝!

回答

1

如果您壓縮第一行你:

phonecatApp.controller("PhoneListCtrl",function(e,t){}) 

的依賴注入將無法再工作,因爲角度不知道什麼et是。與此相比,涅槃第二個版本:

phonecatApp.controller("PhoneListCtrl",["$scope","$http",function(e,t){}]) 

函數參數仍重命名,但$scope$http數組中給出,從而有望注入可以繼續。

1

功能方面沒有區別。如果您的代碼被縮小,第一個可能會變得混亂,因爲角度從參數名稱中解析出來。後者有一些抵禦縮小的保護,因爲你已經在數組中傳遞了依賴關係。