我正在尝试填写表格的行和单元格,如下所示:
<tbody data-bind="foreach: {data: rows, as: 'row'}">
<tr data-bind="foreach: {data: row, as: 'cell'}">
<td data-bind="text: cell"></td>
</tr>
</tbody>
将此作为我的行var:
self.rows = ko.observableArray([
[
['Test', '10', '100', '98', '10', '15']
],
[
['Test2', '10', '100', '98', '10', '20']
]
]);
这会填充正确的行数,但只有第一个TD填充了数组的全部内容。
结果:
<tbody data-bind="foreach: {data: rows, as: 'row'}">
<tr data-bind="foreach: {data: row, as: 'cell'}">
<td data-bind="text: cell">Test,10,100,98,10,15</td>
</tr>
<tr data-bind="foreach: {data: row, as: 'cell'}">
<td data-bind="text: cell">Test2,10,100,98,10,20</td>
</tr>
</tbody>
我做错了什么?
答案 0 :(得分:3)
你有三个级别的数组,你只是深度迭代两个级别。如果您将rows
数据更改为仅嵌套两个级别,则应按预期工作:
self.rows = ko.observableArray([
[
'Test', '10', '100', '98', '10', '15'
],
[
'Test2', '10', '100', '98', '10', '20'
]
]);
JSFiddle:http://jsfiddle.net/Zj2qN/
答案 1 :(得分:1)
你有一个三级数组。你确定需要吗?
如果是这样,你需要再嵌套一个foreach绑定。
我不这么认为,我想你希望你的阵列看起来像这样:
self.rows = ko.observableArray([[1,2,3],[4,5,6]]);