AngularJS學習筆記九 依賴注入

2021-08-15 15:41:56 字數 907 閱讀 4845

1.angularjs中的依賴注入

控制反轉是一種軟體設計思想,而依賴注入就是實現控制反轉最直接也是最簡單的方式,控制反轉就不一定需要通過依賴注入來實現;

所謂的依賴注入,就是當你在乙個元件中需要依賴其他元件的時候,不需要自己建立這些元件,而是通過依賴注入的方式直接獲得這些元件;

獲取依賴可以通過三種方式完成:建立依賴、全域性查詢依賴和依賴注入;

術語解釋:ioc:inversion of control 控制反轉

di:dependency injection 依賴注入

2.angularjs提供了三種依賴注入方式

方式一:通過陣列標註在方法的引數中宣告依賴

注意:建構函式的引數列表與前面的陣列元素是一一對應的;

方式二:使用控制器構造方法的$inject屬性注入依賴:

var func=function($scope){};

func.$inject=['$scope'];

注意:$inject中依賴的順序與構造方法中的引數順序需要保持一致;

方式三:隱式宣告依賴:

注意:嚴格依賴注入模式下隱式宣告依賴會丟擲異常,ng-strict-di.

3.angularjs提供了乙個內建的$provider服務,可以使用它建立幾種可注入型別。可以在呼叫config()方法時使用$provider服務。提供了provide() constant() value() service() factory()等方法;

4.$inject服務實際上就是乙個ioc容器,使用方法$inject.get("servicename")。可以獲取可注入物件,可以使用angular.injector()方法獲取$injector服務。引數接收乙個模組陣列,指定從哪些模組中查詢該服務。$injector的annotate()方法可以知道某個方法依賴於哪些服務。

angularjs學習筆記

不要用控制器去繼承控制器,通用的通過service來通用 不要試圖服用controller,乙個控制器只負責乙個塊試圖 不要在controller中操作dom,這不是controller的職責,用指令只做 不要在controller中做資料初始化,ng有表單控制項 不要在controller中做資料...

angularjs 學習筆記

文件 function angular bootstrap element,modules config 第乙個引數,要繫結的元素,第二個引數要繫結的modules 第三個引數 暫不明確 controller welcomecontroller function scope angular.boot...

Angular JS 學習筆記

特定領域語言 指令 當關聯的html結構進入編譯階段時應該執行的操作,可以寫在名稱裡,屬性裡,css類名裡 本質上是函式 穩定的dom 繫結了資料模型的dom元素的例項不會在繫結的生命週期發生改變 作用域 用來檢測模型的改變和為表示式提供執行上下文的 angularjs 和其它模板系統不同,它使用的...