簡體   English   中英

Angular DI (injector.get(FooService))

[英]Angular DI (injector.get(FooService))

我剛剛開始從其他地方閱讀一些代碼,我必須理解它。 我在 Angular 網站和其他一些與編碼相關的網站上閱讀了很多,但我還沒有理解以下部分,需要你的幫助。

export class AppComponent {
  w: FooService;
  constructor(private injector: Injector) {
    if (environment.production) {
      this.w = this.injector.get(FooService);
    }
  }
}

我不明白為什么開發人員以這種方式注入了 FooService ,為什么他沒有像下面這樣實現注入:

export class AppComponent {
  constructor(w: FooService) {
  }
}

最后,請您解釋一下this.injector.get()的主要目標嗎?

Injector 可用於動態(以編程方式)注冊或加載服務。

從官方文檔中檢查以下示例

Angular 注入令牌文檔

還有另一個如何從官方文檔中手動注冊並再次在測試中注入服務的示例

Angular 手動注入服務

SO中還有另一個答案,其中包含注射器的特定用例。 具有 2 個不同實現的 Angular 服務和使用該服務的某些組件必須為該服務動態選擇一個實現。 這將是一個很好的例子來理解Beshambher Chaukhwan在評論中提到的條件注入。

SO中的另一個相關答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM