【发布时间】:2015-07-04 08:49:26
【问题描述】:
我正在尝试为给定数量的按钮创建一个包含四列按钮的表格(或列表)。一旦一行有四个按钮,它就会移动到下一行。我在使用敲除可观察数组来表示我的数据时遇到了麻烦。我在下面的代码为每个按钮生成一行,但我希望一行有四个按钮,然后再移动到下一行。考虑到我的数据的组织方式,有没有办法做到这一点?
HTML:
<table>
<tbody data-bind="foreach: chosenModelData" id="timesteps">
<tr>
<td><button class="btn btn-default" data-bind="attr: {disabled: $data[2]},
text: $data[0], click: $parent.load_image"></button></td>
</tr>
</tbody>
</table>
摘自我的 JS 文件:
for(var i = 0; i < json.images[0].length; i++) {
self.chosenModelData.push([timestep[i], imgpath[i], false]);
}
编辑(使用虚拟元素):
<table id="mytable">
<tbody data-bind="foreach: chosenModelData" id="timesteps">
<!-- ko if: $index() % 4 === 0 || $index() === 0-->
<tr>
<!-- /ko -->
<td><button class="btn btn-default" data-bind="attr: {disabled: $data[2]}, text: $data[0], click: $parent.load_image"></button></td>
<!-- ko if: $index() % 4 === 0 || $index() === 0 -->
</tr>
<!-- /ko -->
</tbody>
</table>
之前:
之后(使用虚拟元素):
开发工具 html:
<table id="mytable">
<tbody data-bind="foreach: chosenModelData" id="timesteps">
<!-- ko if: $index() % 4 === 0 || $index() === 0 -->
<tr>
<!-- /ko -->
<td><button class="btn btn-default" data-bind="attr: {disabled: $data[2]}, text: $data[0], click: $parent.load_image"></button></td>
<!-- ko if: $index() % 4 === 0 || $index() === 0 -->
</tr>
<!-- /ko -->
<!-- ko if: $index() % 4 === 0 || $index() === 0 --><!-- /ko -->
<!-- ko if: $index() % 4 === 0 || $index() === 0 --><!-- /ko -->
<!-- ko if: $index() % 4 === 0 || $index() === 0 --><!-- /ko -->
<!-- ko if: $index() % 4 === 0 || $index() === 0 -->
<tr>
<!-- /ko -->
<td><button class="btn btn-default" data-bind="attr: {disabled: $data[2]}, text: $data[0], click: $parent.load_image"></button></td>
<!-- ko if: $index() % 4 === 0 || $index() === 0 -->
</tr>
【问题讨论】: