天天看點

Angular-依賴注入 顯式注入和隐式注入

AngularJS

什麼是依賴注入:

使用控制反轉的思想

是說把控制的主動權轉移了,不由調用者決定要調用誰來實作,而是由被注入決定誰去實作。

1、隐式注入

不需要開發人員幹預,angularJS自動根據參數的名稱識别和注入資料

比如:

app.controller("myCtrl".function($scope) {
	$scope.name="summer"
})
           

使用隐式注入 有一個缺點就是:隐式注入如果一但要進行優化,就會存在問題。

2、顯式注入

開發人員通過字元串描述,告訴angular需要注入的對象名稱,這樣JS在進行優化的過程中,對字元串是不會壓縮的,顯式的進行依賴描述

比如:

app.controller("myCtrl",["$scope",function(s){
	s==$ssope
}])
           

項目實際開發過程中使用顯式注入方式!

依賴注入是Angular的招牌功能,使用angular的$injector注入器就可以執行個體化所有的元件、子產品、指令、控制器。這也是angular的核心功能之一。也是了解Angular内部機制的一部分。

而一般來說Angular是不需要顯式進行依賴注入的,因為AngualrJS會内部幫你隐式注入。你可以不管内部發生了什麼,但是你的元件、子產品、指令、控制器就和聲明了ng的元素節點綁定在了一起。

隻不過為了了解Angular的内部機制,我們還是要學會如果利用angular的$injector進行手工的顯式注入。除此之外Angular的顯式注入可以定義一個函數被調用時用到的依賴關系。這樣的話,在源代碼被壓縮、參數名字改變的時候,angular還是可以執行依賴注入。但是隐式的注入就沒有這種效果了。

繼續閱讀