Angular 2 - 何时将服务放在组件的提供者vs模块中?

Angular 2 - 何时将服务放在组件的提供者vs模块中?

问题描述:

我感到困惑时,将服务到组件的提供商@Component() VS为NgModule()Angular 2 - 何时将服务放在组件的提供者vs模块中?

举例来说,如果我有一个将会使HTTP服务调用来获得链接,我的FooterComponent,那么应该就是进入应用程序的NgModule或应该将它用作FooterComponent的@Component中的provider

我通常把提供者放在NgModule中,因为我可能必须为组件提供自定义值,在这种情况下,我可以用组件或指令中的提供来覆盖NgModule中的值。

此外,在重构等情况下,通过几个模块而不是大量组件可以减少工作量。

但是我找不到有关此主题的官方指南。

这取决于您希望如何使用该服务。如果你想在组件类的不同对象中使用不同的服务实例,你应该在@Component中提供它。如果你想在不同的对象中使用一个实例,你应该在@NgModule中提供它。