Dans le très bon John Papa's cours sur Angular 2 sur pluralsight, il recommande en règle générale que les fournisseurs soient enregistrés dans @NgModule
plutôt que dans @Components
car il est rarement nécessaire de masquer les fournisseurs aux autres composants. Dans Angular 1, où tous les fournisseurs devaient être enregistrés au niveau du module, il n'y a pas de débat à ce sujet. Mais quelles situations justifieraient de déroger à cette règle empirique ?
Réponse
Trop de publicités?Si vous vous enregistrez dans chaque composant, il créera à chaque fois des new object for that service
lorsque l'instance du composant sera créée. Donc si vous avez besoin que chaque composant ait son propre service, fournissez-les dans les composants.
Si vous avez besoin d'un singleton service
Il faut donc le fournir dans le module et tous les composants de ce module obtiendront la même instance du service.