Saya berjuang untuk menemukan cara untuk melakukan ini. Dalam komponen induk, template mendeskripsikan a tabledan theadelemennya, tetapi mendelegasikan rendering tbodyke komponen lain, seperti ini:
<table>
<thead>
<tr>
<th>Name</th>
<th>Time</th>
</tr>
</thead>
<tbody *ngFor="let entry of getEntries()">
<my-result [entry]="entry"></my-result>
</tbody>
</table>
Setiap komponen myResult membuat trtagnya sendiri , pada dasarnya seperti ini:
<tr>
<td>{{ entry.name }}</td>
<td>{{ entry.time }}</td>
</tr>
Alasan saya tidak meletakkan ini secara langsung di komponen induk (menghindari kebutuhan akan komponen myResult) adalah karena komponen myResult sebenarnya lebih rumit daripada yang ditampilkan di sini, jadi saya ingin meletakkan perilakunya dalam komponen dan file terpisah.
DOM yang dihasilkan terlihat buruk. Saya yakin ini karena tidak valid, karena tbodyhanya dapat berisi trelemen (lihat MDN) , tetapi DOM yang saya buat (disederhanakan) adalah:
<table>
<thead>
<tr>
<th>Name</th>
<th>Time</th>
</tr>
</thead>
<tbody>
<my-result>
<tr>
<td>Bob</td>
<td>128</td>
</tr>
</my-result>
</tbody>
<tbody>
<my-result>
<tr>
<td>Lisa</td>
<td>333</td>
</tr>
</my-result>
</tbody>
</table>
Apakah ada cara kita bisa mendapatkan hal yang sama diberikan, tetapi tanpa pembungkus <my-result> tag , dan saat masih menggunakan komponen untuk menjadi satu-satunya yang bertanggung jawab untuk merender baris tabel?
Saya telah melihat ng-content, DynamicComponentLoader, yang ViewContainerRef, tetapi mereka tampaknya tidak memberikan solusi untuk ini sejauh yang saya bisa melihat.