2017-07-23 4 views
1

J'utilise DI pour injecter le service dans plusieurs composants. Maintenant, cela ne fonctionne pas comme une instance commune. Comment ne conserver qu'une seule instance de service pour plusieurs composants?Comment conserver une seule instance de service pour plusieurs composants?

Comment conserver une seule instance de service pour plusieurs composants?

Je TRIE pour charger le service dans app.module dans la section providers

+4

Ensuite, vous devriez avoir un singleton. Fournir un exemple minimal complet reproduisant le problème. –

Répondre

3

Si vous ajoutez un fournisseur que-@NgModule({providers: [MyService]}) (et nulle part ailleurs), alors il n'y aura exactement une instance deMyService dans votre application.

Ceci n'est vrai que lorsque le décorateur @NgModule() se trouve sur un module chargé non-paresseux. Les fournisseurs de modules chargés par défaut peuvent être importés avec forRoot pour s'assurer qu'ils seront également des singletons.

Si vous ajoutez un service à @Component({ providers: [...]}), il y aura autant d'instances que d'instances de ce composant.