मैं ऐसा करने का तरीका खोजने के लिए संघर्ष कर रहा हूं। मूल घटक में, टेम्पलेट एक tableऔर उसके theadतत्व का वर्णन करता है , लेकिन प्रतिनिधियों tbodyको इस तरह से एक और घटक प्रदान करता है:
<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>
प्रत्येक myResult घटक अपने स्वयं के trटैग को प्रस्तुत करता है , मूल रूप से ऐसा:
<tr>
<td>{{ entry.name }}</td>
<td>{{ entry.time }}</td>
</tr>
इसका कारण मैं इसे मूल घटक में सीधे नहीं डाल रहा हूं (myResult घटक की आवश्यकता को टालते हुए) यह है कि myResult घटक वास्तव में यहां दिखाए जाने की तुलना में अधिक जटिल है, इसलिए मैं इसके व्यवहार को एक अलग घटक और फ़ाइल में रखना चाहता हूं।
परिणामस्वरूप DOM ख़राब दिखता है। मेरा मानना है कि यह अमान्य है, क्योंकि इसमें tbodyकेवल trतत्व शामिल हो सकते हैं (MDN देखें) , लेकिन मेरा जेनरेट (सरलीकृत) DOM है:
<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>
क्या कोई ऐसा तरीका है जिससे हम एक ही चीज़ प्रदान कर सकते हैं, लेकिन रैपिंग <my-result>टैग के बिना , और अभी भी एक मेज पंक्ति को रेंडर करने के लिए एकमात्र घटक होने के लिए एक घटक का उपयोग करना?
मैं पर ध्यान दिया है ng-content, DynamicComponentLoader, ViewContainerRef, लेकिन वे जहाँ तक मैं देख सकते हैं इस के लिए एक समाधान प्रदान करने के लिए नहीं है।