【发布时间】:2012-12-17 22:48:24
【问题描述】:
我想使用淘汰赛动态呈现行和列。这个想法是我想用一些单元格填充每一行,并在需要时动态添加更多行。 让我们假设单元格总数等于 4* 行数,然后我尝试了:
<table>
<tbody data-bind="foreach: model">
<!--ko if: $index() % 4 == 0--><tr><!--/ko-->
<td>
<label data-bind="text: Value"></label>
</td>
<td>
<input type="checkbox" data-bind="checked: IsChecked"/>
</td>
<!--ko if: $index() % 4 == 0--></tr><!--/ko-->
</tbody>
</table>
但它的工作原理是这样的:
<table>
<tbody data-bind="foreach: model">
<!--ko if: $index() % 4 == 0-->
<td>
<label data-bind="text: Value"></label>
</td>
<td>
<input type="checkbox" data-bind="checked: IsChecked"/>
</td>
</tr><!--/ko-->
</tbody>
</table>
通过不使用内容呈现整行,是否可以通过剔除来呈现所有单元格并仅在需要时添加行?
作为一种解决方法,我考虑嵌套 foreach,但这需要我的模型从一维变为二维,这看起来很奇怪。
【问题讨论】:
-
您确定要为此使用 HTML 表格吗?如果您有一个平面项目列表作为您的数据,您是否可以不只是将它们呈现为 div 并使用 CSS 让它们在一个容器内自然流动,跨越 4 个?
-
是的,它的表格数据和表格用于使用 div 显示表格数据将是解决方法而不是解决方案
标签: javascript knockout.js template-engine