Bisakah saya menggunakan ngIf
tanpa elemen kontainer tambahan?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
Itu tidak berfungsi dalam tabel karena itu akan membuat HTML tidak valid.
ng-container
lebih 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*ngIf
dengan[ngIf]
seperti ini.sumber
template
tag, secara default prefiks angular directives dengan * membuat tag template. jadi keduanya sama[ngIf] and *ngIf
*ngIf
Anda memiliki elemen di dalam template, Anda tidak dapat menulisnyatemplate
sendiri. Dalam keadaan tertentu, elemen tambahan dapat mengganggu.template
tag di dalam,tr
/td
tag?*ngIf="foo"
setara dengan<template [ngIf]="foo">
tag pembungkus . Singkatnya,template
+[]
==*
, jadi[]
! =*
.*
masuk akal dalam elemen apa pun kecualitemplate
.Anda tidak dapat memasukkan
div
langsung ke dalamtr
, itu akan membuat HTML tidak valid.tr
hanya dapat memilikitd
/th
/table
elemen di dalamnya & di dalamnya Anda dapat memiliki elemen HTML lainnya.Anda bisa sedikit mengubah HTML Anda untuk memiliki
*ngFor
lebihtbody
& memilikingIf
lebihtr
itu sendiri seperti di bawah ini.sumber