2

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

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

我尝试app.module在部分中加载服务providers

4

1 回答 1

5

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

仅当@NgModule()装饰器位于非延迟加载的模块上时才适用。可以使用forRoot导入延迟加载模块的提供者,以确保它们也是单例的。

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

于 2017-07-23T13:29:38.403 回答