我正在努力寻找一种方法来做这件事。在父组件中,模板描述了一个
每个myResult组件都会渲染自己的标签,基本上像这样:
我没有直接将这段代码放在父组件中(避免使用myResult组件)的原因是,myResult组件实际上比这里展示的更复杂,所以我想将其行为放在一个单独的组件和文件中。
生成的DOM结构看起来很糟糕。我认为这是因为它是无效的,因为标签只能包含元素(参见MDN),但是我生成的(简化的)DOM结构是:
有没有办法使用子组件来渲染表格行,而不需要包裹在标签中?
我已经查看了ng-content、DynamicComponentLoader和ViewContainerRef,但据我所见,它们似乎没有提供解决方案。
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>
<td>{{ entry.name }}</td>
<td>{{ entry.time }}</td>
</tr>
我没有直接将这段代码放在父组件中(避免使用myResult组件)的原因是,myResult组件实际上比这里展示的更复杂,所以我想将其行为放在一个单独的组件和文件中。
生成的DOM结构看起来很糟糕。我认为这是因为它是无效的,因为标签只能包含元素(参见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>
有没有办法使用子组件来渲染表格行,而不需要包裹在标签中?
我已经查看了ng-content、DynamicComponentLoader和ViewContainerRef,但据我所见,它们似乎没有提供解决方案。