Fournisseur de service
Vous devez enregistrer au moins un fournisseur de tout service que vous allez utiliser.
Le fournisseur peut faire partie des métadonnées du service, rendant ce service disponible partout, ou vous pouvez enregistrer des fournisseurs avec des modules ou des composants spécifiques.
Vous enregistrez les fournisseurs dans les métadonnées du service (dans le décorateur
@Injectable()
) ou dans les métadonnées de
@NgModule()
ou
@Component()
Par défaut, la commande Angular CLI
ng generate service
inscrit un fournisseur auprès de l'injecteur racine de votre service en incluant des métadonnées de fournisseur dans
le décorateur
@Injectable()
. Le tutoriel utilise cette méthode pour enregistrer le fournisseur de la définition de classe
HeroService
.
Lorsque vous fournissez le service au niveau racine, Angular crée une instance unique et partagée de
HeroService
et l'injecte dans toute classe qui le demande.
L'enregistrement du fournisseur dans les métadonnées
@Injectable()
permet également à Angular d'optimiser une application en supprimant le service de l'application compilée,
si elle n'est pas utilisée.
Lorsque vous enregistrez un fournisseur avec un
NgModule
spécifique, la même instance d'un service est disponible pour tous les composants de ce
NgModule
.
Pour vous inscrire à ce niveau, utilisez la propriété
providers
du décorateur
@NgModule()
.
Lorsque vous enregistrez un fournisseur au niveau du composant, vous obtenez une nouvelle instance du service avec chaque nouvelle instance de ce composant.
Au niveau du composant, enregistrez un fournisseur de services dans la propriété
providers
des métadonnées
@Component()
.
src/app/hero-list.component.ts (fournisseurs de composants)