Bisakah saya menggunakan ngIftanpa elemen kontainer tambahan?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
Itu tidak berfungsi dalam tabel karena itu akan membuat HTML tidak valid.
Bisakah saya menggunakan ngIftanpa elemen kontainer tambahan?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
Itu tidak berfungsi dalam tabel karena itu akan membuat HTML tidak valid.
Jawaban:
ng-containerlebih disukai daripada template:
<ng-container *ngIf="expression">
Lihat:
Saya menemukan metode untuk itu di: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-template .
Anda cukup menggunakan <template>tag dan menggantinya *ngIfdengan [ngIf]seperti ini.
<template [ngIf]="...">
...
</template>
templatetag, secara default prefiks angular directives dengan * membuat tag template. jadi keduanya sama[ngIf] and *ngIf
*ngIfAnda memiliki elemen di dalam template, Anda tidak dapat menulisnya templatesendiri. Dalam keadaan tertentu, elemen tambahan dapat mengganggu.
templatetag di dalam, tr/ tdtag?
*ngIf="foo"setara dengan <template [ngIf]="foo">tag pembungkus . Singkatnya, template+ []== *, jadi []! = *. *masuk akal dalam elemen apa pun kecuali template .
Anda tidak dapat memasukkan divlangsung ke dalam tr, itu akan membuat HTML tidak valid. trhanya dapat memiliki td/ th/ tableelemen di dalamnya & di dalamnya Anda dapat memiliki elemen HTML lainnya.
Anda bisa sedikit mengubah HTML Anda untuk memiliki *ngForlebih tbody& memiliki ngIflebih tritu sendiri seperti di bawah ini.
<tbody *ngFor="...">
<tr *ngIf="...">
...
</tr>
<tr *ngIf="!...">
...
</tr>
..
</tbody>