ฉันสามารถใช้ngIfโดยไม่มีองค์ประกอบคอนเทนเนอร์เพิ่มเติมได้หรือไม่
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
ไม่ทำงานในตารางเนื่องจากจะทำให้ HTML ไม่ถูกต้อง
ฉันสามารถใช้ngIfโดยไม่มีองค์ประกอบคอนเทนเนอร์เพิ่มเติมได้หรือไม่
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
ไม่ทำงานในตารางเนื่องจากจะทำให้ HTML ไม่ถูกต้อง
คำตอบ:
ng-containerเป็นที่ต้องการมากกว่าtemplate:
<ng-container *ngIf="expression">
ดู:
ผมพบว่าวิธีการที่เมื่อ: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-template
คุณสามารถใช้<template>แท็กและแทนที่*ngIfด้วย[ngIf]สิ่งนี้
<template [ngIf]="...">
...
</template>
templateแท็กโดยค่าเริ่มต้นคำสั่งเชิงมุมคำนำหน้าด้วย * สร้างแท็กเทมเพลต ดังนั้นทั้งคู่จึงเหมือนกัน[ngIf] and *ngIf
*ngIfคุณมีองค์ประกอบภายในเทมเพลตคุณจะไม่ต้องเขียนtemplateเอง ภายใต้สถานการณ์บางอย่างองค์ประกอบพิเศษอาจรบกวน
templatetag ไว้ข้างใน, tr/ tdtag ได้ไหม?
*ngIf="foo"เทียบเท่ากับ<template [ngIf]="foo">แท็กการห่อ ในระยะสั้นtemplate+ []== *ดังนั้น[]! = *. *ทำให้ความรู้สึกในองค์ประกอบใด ๆยกเว้น template
คุณไม่สามารถใส่divเข้าไปข้างในได้โดยตรงtrซึ่งจะทำให้ HTML ไม่ถูกต้อง trสามารถมีtd/ th/ tableองค์ประกอบในนั้นและภายในคุณสามารถมีองค์ประกอบ HTML อื่น ๆ ได้
คุณสามารถเปลี่ยน HTML ของคุณเล็กน้อยเพื่อให้มี*ngForover tbody& have ngIfover trเองเหมือนด้านล่าง
<tbody *ngFor="...">
<tr *ngIf="...">
...
</tr>
<tr *ngIf="!...">
...
</tr>
..
</tbody>