¿Puedo usar ngIfsin un elemento contenedor adicional?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
No funciona en una tabla porque haría HTML inválido.
ng-containerse prefiere sobre template:
<ng-container *ngIf="expression">
Ver:
Encontré un método para eso en: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-template .
Simplemente puede usar la
<template>etiqueta y reemplazarla*ngIfcon algo[ngIf]así.fuente
templateetiqueta, por defecto el prefijo de directivas angulares con * crea una etiqueta de plantilla. entonces ambos son iguales[ngIf] and *ngIf*ngIfusted tiene un elemento dentro de la plantilla, no hacer si se escribe eltemplatemismo. En determinadas circunstancias, el elemento adicional podría interferir.templateetiqueta dentro,tr/tdetiqueta?*ngIf="foo"es equivalente a la<template [ngIf]="foo">etiqueta de envoltura . En resumen,template+[]==*, entonces[]! =*.*tiene sentido en cualquier elemento exceptotemplate.No se puede poner
divdirectamente dentrotr, eso haría HTML inválido.trsolo puede tenertd/th/tableelemento en él y dentro de ellos podría tener otros elementos HTML.Se podría cambiar ligeramente el código HTML para tener
*ngFormástbodyy tienenngIfmás detrsí, como a continuación.fuente