Как сохранить только один экземпляр сервиса для нескольких компонентов?

Я использую DI, чтобы ввести сервис в нескольких компонентах. Теперь это работает не как один общий случай.

Как сохранить только один экземпляр сервиса для нескольких компонентов?

Я пытаюсь загрузить службу в app.module в разделе providers

1 ответ

Решение

Если вы добавляете провайдера только в @NgModule({providers: [MyService]}) (и нигде больше) тогда будет только один случай MyService в вашем приложении.

Это верно только тогда, когда @NgModule() Декоратор находится на загруженном модуле. Поставщики модулей с отложенной загрузкой могут быть импортированы с помощью forRoot, чтобы гарантировать, что они также будут одиночными.

Если вы добавляете услугу в @Component({ providers: [...]}) тогда будет столько же экземпляров, сколько экземпляров этого компонента.

Другие вопросы по тегам