天天看點

如何了解AngularJS中的依賴注入

    AngularJS最容易引起混淆的特性之一就是依賴注入(DI)。可能很難了解到底什麼是依賴注入,它如何工作,以及為什麼它是有用的。

    先從了解依賴注入打算要解決的問題開始。一個AngularJS應用程式中的一些元件可能會依賴于其它元件,例如,控制器需要使用 $scope 元件,使得控制器可以向視圖傳遞資料,即控制器依賴于 $scope 元件來執行工作。

<script>
	...
	myApp.controller('myCtrl', ['$scope',function($scope){
		//在此定義controller的邏輯
	}]);
	...
</script>
           

    依賴注入簡化了元件之間處理依賴的過程(即解決依賴)。沒有依賴注入,就不得不以某種方式自己查找$scope,很可能得使用全局變量。這雖然能夠工作,但是不如AngularJS的依賴注入技術這麼簡單。

    AngularJS應用程式中的一個元件通過在工廠函數的參數上聲明依賴,聲明的名稱要與所依賴的元件相比對。依賴注入改變了函數參數的用途,沒有依賴注入,參數會被用于接收調用者想傳入的任何對象,但是有了依賴注入後,函數使用參數來提出需求,告訴AngularJS它需要什麼樣的元件。

    在開發中使用依賴注入的主要好處是AngularJS負責管理元件并在需要的時候提供給相應函數。依賴注入還能夠為測試帶來好處,因為它允許你使用假的或者模拟的對象來代替真實的元件,進而讓開發者專注于程式的特定部分。

繼續閱讀