如何只为几个组件保留一个服务实例?

时间:2017-07-23 13:27:17

标签: angular dependency-injection angular-di

我使用 DI 在几个组件中注入服务。现在它不是一个常见的实例。

如何只为几个组件保留一个服务实例?

我想在app.module

部分的providers中加载服务

1 个答案:

答案 0 :(得分:5)

如果您将提供商添加到@NgModule({providers: [MyService]})(以及其他任何地方),那么您的MyService中只会有一个的实例应用

仅当@NgModule()装饰器位于非延迟加载的模块上时才会出现这种情况。可以使用forRoot导入延迟加载模块的提供程序,以确保它们也是单例。

如果您向@Component({ providers: [...]})添加服务,则会有与此组件实例一样多的实例。