▪️Angular - Dependency Injection
2024-8-1
| 2025-3-19
字數 424閱讀時間 2 分鐘
Angular 中的 Dependency Injection(DI,依賴注入) 是一種設計模式。
用來管理元件之間的相依關係,讓你不用自己手動建立物件
而是交由 Angular 的 DI 系統來「自動提供(inject)所需要的服務或物件」。

宣告


使用 providedIn: 'root’ (推薦)

angular 會在應用程式啟動時已單例模式自動註冊到所有類別中
 

 

使用 Component 提供

在 component 使用 providers 載入 Dependency
 

 

使用 ApplicationConfig 提供

可以在 ApplicationConfig 使用 providers 註冊
 
providers 提供了幾種方法來實例 dependency
  • useValue : 靜態變數
    • useClass : 使用 class 來用 new() 實例化
      • useExisting : 將一個 DI 命名為另一個 DI
        • useFactory : 使用函式,會動態執行函式來取用結果
          • 已上述為例 在使用 HeroService 這個DI 時,就會呼叫 heroServiceFactory 來動態判斷 HeroService Class 內的 isAuthorized,deps 為 Factory 要使用的參數
         

        注入

        constructor

         

         

        (推薦) inject method

      • Angular
      • InjectionToken客製 Directive
        Loading...