Posso usare ngIfsenza un elemento contenitore aggiuntivo?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
Non funziona in una tabella perché renderebbe HTML non valido.
Posso usare ngIfsenza un elemento contenitore aggiuntivo?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
Non funziona in una tabella perché renderebbe HTML non valido.
Risposte:
ng-containerè preferito rispetto a template:
<ng-container *ngIf="expression">
Vedere:
Ho trovato un metodo per questo su: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-template .
Puoi semplicemente usare il <template>tag e sostituirlo *ngIfcon [ngIf]questo.
<template [ngIf]="...">
...
</template>
templatetag, per impostazione predefinita il prefisso delle direttive angolari con * crea un tag modello. quindi entrambi sono uguali[ngIf] and *ngIf
*ngIfhai un elemento all'interno del modello, non lo fai se scrivi tu templatestesso. In determinate circostanze l'elemento aggiuntivo potrebbe interferire.
templatetag all'interno, tr/ tdtag?
*ngIf="foo"è equivalente al <template [ngIf]="foo">tag di avvolgimento . In breve, template+ []== *, quindi []! = *. *ha senso in qualsiasi elemento tranne template .
Non puoi inserire divdirettamente all'interno tr, ciò renderebbe HTML non valido. trpuò contenere solo l' elemento td/ th/ tablee al loro interno potresti avere altri elementi HTML.
Potresti cambiare leggermente il tuo HTML per avere *ngForsopra tbodye ngIfsopra trse stesso come sotto.
<tbody *ngFor="...">
<tr *ngIf="...">
...
</tr>
<tr *ngIf="!...">
...
</tr>
..
</tbody>