1
我有一個服務A.該服務獲得另一個服務B注入。 所以A使用B. B被A使用並注入As構造。Angular 2:服務注入服務,Provider
在組份I使用的服務答:我不直接使用服務B.但是,A使用B,因爲B被注入A.
在這部分我需要把
providers: [A, B]
如果我只把A放到提供商
"ERROR: No provider for B"
在瀏覽器的Javascript控制檯中。我沒有收到編譯器錯誤。
有沒有辦法隱藏組件提供程序中未直接使用的其他服務?
我不喜歡將B放入組件提供程序,而不是直接使用它。
謝謝!
編輯
我可以把所有的服務到模塊提供者,然後我不能將它們設置在我使用服務的任何部件。但是這樣做有沒有負面影響?
您可以在模塊中提供服務B,以便您不必在每個組件中提供它。 – omeralper
DI提供提供者。每個組件和模塊都有自己的注射器,如果注射器無法找到提供者,它會詢問其父注入器,直到模塊出現爲止。在服務A中使用服務B並不意味着服務B將被提供。組件或模塊必須提供它。 – omeralper