2016-02-12 36 views
1

我是一個Angular初學者,我試圖理解導入控制器中的東西,例如$ http,[]中的差異以及函數中的類似參數。不同類型的導入AngularJS

換句話說,是什麼東西之間的這樣

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

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

我簽出的文檔和很多關於它的實例差,但我不明白。

在此先感謝和抱歉我的基本問題。

Regards

+0

它們之間在功能上沒有區別,除了縮小後者用於正確注入 – Eftakhar

回答

2

兩者都做同樣的事情。但第二種方法對於縮小比較安全。

如果你想運行如下:

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

這將打破,因爲$範圍和$ HTTP將被重新命名爲a和b。

你可以閱讀更多關於它在這裏: https://scotch.io/tutorials/declaring-angularjs-modules-for-minification

作爲鏈接的文章中說,你也可以用它注入控制器:

mainController.$inject = ['$scope']; 
0

https://docs.angularjs.org/guide/di - 讀依賴注入的文檔角度應該足夠了。或多或少,就像yeouuu所說的那樣。

當一切都縮小和uglified你收到,即功能(paramOne,paramTwo) - >功能(a,b)。在運行時你不能找到我們實際包含的搜索。字符串不會被縮小。所以基本上在運行時你有控制器之間的映射('AnyCtrl,['$ scope','$ http',function(a,b){}]); 它知道a對應於$ scope,b對應於$ http。這就是訂單也很重要的原因。