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