17. Directives structurelles intégrées : *NgSwitch
*NgSwitch est le moyen utilisé par Angular pour implémenter un rendu conditionnel basé sur plusieurs valeurs potentielles, similaire à une instruction switch en JavaScript.
Elle supprime les éléments du DOM tout comme *NgIf.
Le trio de directives NgSwitch
[ngSwitch]: Appliquée à un élément conteneur. Définit l'expression dont la valeur sera évaluée.*ngSwitchCase: Appliquée aux éléments à l'intérieur du conteneur. Rend l'élément si sa valeur correspond à l'expression[ngSwitch].*ngSwitchDefault: Appliquée à un élément à l'intérieur du conteneur. Rend l'élément si aucune des conditions*ngSwitchCasen'est remplie.
Exemple de *NgSwitch
Classe du composant :
typescript export class NotificationComponent { userRole: string = 'admin'; // 'guest', 'user', ou 'admin'
promoteToAdmin() { this.userRole = 'admin'; } }
Template :
html <button (click)="promoteToAdmin()">Promouvoir</button>
<div [ngSwitch]="userRole"> <div *ngSwitchCase="'admin'" class="badge-admin"> Accès Administrateur accordé. </div> <div *ngSwitchCase="'user'" class="badge-user"> Privilèges Utilisateur standard. </div> <div *ngSwitchCase="'guest'"> Accès Invité (Lecture seule). </div> <!-- Rendu si userRole est n'importe quoi d'autre (ex: 'pending') --> <div *ngSwitchDefault> Rôle inconnu. Veuillez contacter le support. </div> </div>*NgSwitch est plus clair et souvent plus performant que le chaînage de plusieurs instructions *NgIf/else, surtout lors d'une comparaison par rapport à une variable unique.