您好,我在客户端有下一部分映射, 然后我添加了子数组绑定,我开始得到错误之类的 未捕获错误:无法找到要匹配的结束评论标记:ko foreach:{data:$ item.sub,as:'s'}
<tbody>
<!-- ko foreach: {data: reportData, as: 'item'} -->
<tr>
<td data-bind="text: item.statDate">
</td>
<td>
<span data-bind="text: item.newRegisteredUsers"></span>
<table>
<!-- ko foreach: {data: $item.sub, as: 's'} -->
<tr>
<td data-bind="text: s.name"></td>
<td data-bind="text: s.amount"></td>
</tr>
<!-- /ko -->
</table>
</td>
<td data-bind="text: item.text"></td>
</tr>
<!-- /ko -->
</tbody>
有什么问题? 感谢。
答案 0 :(得分:5)
问题可能是您的浏览器正在插入一个包裹内部表的tbody
元素;你需要明确地将它放在那里(在任何情况下哪些可访问性指南都应该这样做),其中包含foreach
绑定:
<span data-bind="text: newRegisteredUsers"></span>
<table>
<tbody>
<!-- ko foreach: {$data.sub, as: 's'} -->
<tr>
<td data-bind="text: s.name"></td>
<td data-bind="text: s.amount"></td>
</tr>
<!-- /ko -->
</tbody>
</table>
答案 1 :(得分:1)
参考: Knockout.js containerless "foreach" not working with <table>
这与浏览器插入tbody标签有关 自动,这会在评论中造成不匹配。
尝试使用类似的内容,我已将foreach
移至tbody
标记:
<tbody data-bind="foreach: reportData">
<tr>
<td data-bind="text: statDate">
</td>
<td>
<span data-bind="text: newRegisteredUsers"></span>
<table>
<!-- ko foreach: {$data.sub, as: 's'} -->
<tr>
<td data-bind="text: s.name"></td>
<td data-bind="text: s.amount"></td>
</tr>
<!-- /ko -->
</table>
</td>
<td data-bind="text: text"></td>
</tr>
</tbody>