我有两个父母和孩子的收藏品。对于每个父行,我基于父记录id等于子记录id的条件在html表中呈现子行。 html如下所示:
<tbody data-bind="foreach: $root.subGridRows">
<tr data-bind="foreach: $root.subGridColumns">
<!-- ko if: $parents[1][$root.parentRecordKey] === $parent[$root.childRecordKey] -->
<td>
<span data-bind="text: header"></span>
</td>
<!-- /ko -->
</tr>
</tbody>
我想为所有行只渲染包含span元素的列一次。我无法消除上面使用的淘汰条件,因为它只为那些ID与父记录ID匹配的子记录呈现列。
答案 0 :(得分:0)
很难理解你的问题,但听起来好像将foreach
移出tr
进入它自己的虚拟foreach
会解决你的问题。例如:
<tbody data-bind="foreach: $root.subGridRows">
<tr>
<td data-bind="if: $parent[$root.parentRecordKey] === $data[$root.childRecordKey]">
<span data-bind="text: header"></span>
</td>
<!-- foreach: $root.subGridColumns -->
<td>Display other columns here</td>
<!-- /ko -->
</tr>
</tbody>
可能略有偏差,代码未经测试,但它可以帮助您解决问题。