*ngContainer pour le conteneur invisible

La directive *ngContainer est une directive structurelle dans Angular qui sert de conteneur invisible pour les directives *ngIf, *ngFor, *ngSwitch, etc. Elle n'ajoute pas d'éléments supplémentaires au DOM, contrairement à d'autres directives structurales comme *ngIf ou *ngFor.

Voici comment vous pouvez l'utiliser :

Utilisation de *ngContainer pour le conteneur invisible

Supposons que vous ayez une liste d'objets users et que vous vouliez afficher un message différent en fonction du nombre d'utilisateurs. Vous pouvez utiliser *ngContainer avec *ngIf pour cela.

users = [{ name: 'John' }, { name: 'Jane' }, { name: 'Doe' }];

Et dans votre template HTML :

<ng-container *ngIf="users.length > 0; else noUsers">
 <h2>Users</h2>
 <ul>
   <li *ngFor="let user of users">{{ user.name }}</li>
 </ul>
</ng-container>
 
<ng-template #noUsers>
 <p>No users found.</p>
</ng-template>

Dans cet exemple, *ngContainer est utilisé comme un conteneur pour les directives *ngIf et *ngFor. Si la longueur de users est supérieure à 0, alors le contenu à l'intérieur de *ngContainer sera affiché. Sinon, le contenu de l'élément <ng-template> avec le nom #noUsers sera affiché.

Notez que *ngContainer n'ajoute pas d'éléments supplémentaires au DOM, donc il n'y a pas d'impact sur le rendu de votre page.