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.