Puis-je utiliser ngIf
sans élément conteneur supplémentaire?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
Cela ne fonctionne pas dans une table car cela rendrait du HTML invalide.
ng-container
est préférable à template
:
<ng-container *ngIf="expression">
Voir:
J'ai trouvé une méthode pour cela sur: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-template .
Vous pouvez simplement utiliser la balise <template>
et remplacer *ngIf
par [ngIf]
comme ceci.
<template [ngIf]="...">
...
</template>
Vous ne pouvez pas mettre div
directement dans tr
, cela rendrait le code HTML invalide. tr
ne peut contenir que des éléments td
/th
/table
et vous pouvez y insérer d'autres éléments HTML.
Vous pouvez légèrement changer votre code HTML pour avoir *ngFor
sur tbody
et avoir ngIf
sur tr
comme ci-dessous.
<tbody *ngFor="...">
<tr *ngIf="...">
...
</tr>
<tr *ngIf="!...">
...
</tr>
..
</tbody>