Outils pour utilisateurs

Outils du site


lang:angular:service

Table des matières

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],
})
lang/angular/service.txt · Dernière modification : de root