Puis-je utiliser ngIfsans élément de conteneur supplémentaire?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
Cela ne fonctionne pas dans un tableau car cela rendrait du HTML invalide.
Puis-je utiliser ngIfsans élément de conteneur supplémentaire?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
Cela ne fonctionne pas dans un tableau car cela rendrait du HTML invalide.
Réponses:
ng-containerest préféré à 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 <template>balise et la remplacer *ngIfpar [ngIf]celle-ci.
<template [ngIf]="...">
...
</template>
templatebalise, par défaut le préfixe des directives angulaires avec * crée une balise de modèle. donc les deux sont identiques[ngIf] and *ngIf
*ngIfvous avez un élément à l'intérieur du modèle, vous n'en avez pas si vous écrivez vous- templatemême. Dans certaines circonstances, l'élément supplémentaire pourrait interférer.
templatetag à l'intérieur, tr/ tdtag?
*ngIf="foo"équivaut à la <template [ngIf]="foo">balise d' emballage . En bref, template+ []== *, donc []! = *. *a du sens dans n'importe quel élément sauf template .
Vous ne pouvez pas mettre divdirectement à l'intérieur tr, cela rendrait du HTML invalide. trne peut contenir que l' élément td/ th/ tableet à l'intérieur, vous pouvez avoir d'autres éléments HTML.
Vous pouvez légèrement modifier votre HTML pour avoir *ngForplus tbodyet avoir ngIfsur trlui-même comme ci-dessous.
<tbody *ngFor="...">
<tr *ngIf="...">
...
</tr>
<tr *ngIf="!...">
...
</tr>
..
</tbody>