簡體   English   中英

角,提供者或注入者,它們創建一個服務實例

[英]Angular, provider or injector, which one creates a service instance

在Angular Document中, 說“提供者創建服務實例”

您必須使HeroService可用於依賴項注入系統,然后Angular才能將其注入HeroesComponent,如下所述。 您可以通過注冊提供者來實現。 提供者是可以創建或提供服務的東西 ; 在這種情況下,它將實例化HeroService類以提供服務。

但這說“注入器創建服務實例”

注入程序負責創建服務實例並將其注入到HeroListComponent之類的類中。

因此,在閱讀文檔之后,我有一個問題是哪個將創建服務實例,提供者或注入者?

這個問題使我很困惑。 提前致謝。

我了解的方式是,使用NgModule的providers數組實際上是在創建提供程序。

例如,查看提供程序覆蓋:

providers: [{ provide: MyService, useClass: MyServiceMock }]

如您所見,您確實是在從該數組創建提供程序。

我想以“標准”方式編寫它只是創建提供程序的捷徑。

另一方面,注入器是創建類實例的注入器,它將作為依賴項注入到您的特征中。

換句話說,提供程序將是使用@Injectable裝飾的服務,而注入程序將是調用new MyService()

(再次,不確定我的解釋,這就是我自己得到的)。

當您想使用服務時,您幾乎不需要什么。

1)創建服務
2)在想要將其作為依賴項注入的組件中獲取它。
3)angular實例化服務的唯一方法是“向” Angular“提供”一些指令。 這就是您在提供程序中所做的。

A provider is an instruction to the DI system on how to obtain a value for a dependency. Most of the time, these dependencies are services that you create and provide.

請在下面的Angular文檔中的此鏈接中查看此內容: https : //angular.io/guide/providers

海事組織,你可以看到3個街區

  • 注射器
  • 提供商

作為簡單的便箋,工廠實例化一個類(您的服務),您的提供者可以在這里選擇要使用的工廠,真正的類工廠或模擬工廠,而注入器只是決定使用提供者的DI

因此,在“組件”級別上,是的,是注入器“實例化”了您的服務,只是為了澄清您沒有自己點它。

暫無
暫無

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

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