Puis-je utiliser ngIf
sans é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.
ng-container
est 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*ngIf
par[ngIf]
celle-ci.la source
template
balise, 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
*ngIf
vous avez un élément à l'intérieur du modèle, vous n'en avez pas si vous écrivez vous-template
même. Dans certaines circonstances, l'élément supplémentaire pourrait interférer.template
tag à l'intérieur,tr
/td
tag?*ngIf="foo"
équivaut à la<template [ngIf]="foo">
balise d' emballage . En bref,template
+[]
==*
, donc[]
! =*
.*
a du sens dans n'importe quel élément sauftemplate
.Vous ne pouvez pas mettre
div
directement à l'intérieurtr
, cela rendrait du HTML invalide.tr
ne peut contenir que l' élémenttd
/th
/table
et à l'intérieur, vous pouvez avoir d'autres éléments HTML.Vous pouvez légèrement modifier votre HTML pour avoir
*ngFor
plustbody
et avoirngIf
surtr
lui-même comme ci-dessous.la source