=====Présentation=====
Un service a pour but d'étendre les fonctionnalités d'un composant. Le composant ne doit contenir que la partie affichage. Et donc il lui faut un service pour la partie logique.
Et il faut utiliser un service et non pas des méthodes statiques car un service peut s'appeler depuis la partie HTML, ce qui n'est pas le cas d'une méthode statique.
====Base====
Pour générer un service:
ng g s VersionService
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class VersionService {
}
Et injecter le service dans la classe en tant que membre.
private versionService = inject(VersionService);
En mettant ''providedIn: 'root%%'%%'', c'est la même instance de ''VersionService'' qui sera partagée dans l'ensemble du programme.
====Multiples instances====
Si on veut avoir plusieurs instances où certains composants gèrent l'instanciation de la classe pour les composants enfants, il faut:
* autoriser plusieurs instances
@Injectable({
providedIn: null
})
* Indiquer quel composant instancie le service dans les composants enfant.
@Component({
...
providers: [VersionService],
})