我很想将一个对象数组绑定到一个表的td元素来实现dinamyc列。 视图模型是:
<script type="text/javascript">
function rowObject() {
this.chid = 100;
this.chname = 'child';
this.numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
}
function masterVM() {
this.id = 1;
this.name = 'xxx';
this.rowObjects = [new rowObject(),new rowObject(), new rowObject()];
}
ko.applyBindings(new masterVM());
</script>
html视图是:
<tbody data-bind="foreach: rowObjects">
<tr>
<td data-bind="text: chid" />
<td data-bind="text: chname" />
<!-- ko foreach: numbers-->
<td data-bind="text: $data"></td>
<!-- /ko -->
</tr>
</tbody>
但是在$ data中有一个rowObject实例,而不是number数组的元素。我尝试了模板,但同样的问题。
有一种方法可以实现这种行为吗?
答案 0 :(得分:2)
我做了2个例子来说明如何做到这一点。一个有UL,另一个有桌子(只是为了确保我没有坚果)。 http://jsfiddle.net/johnpapa/8wYRf/
我认为您的问题是由使用<td/>
代替<td></td>
引起的。偶尔也会抓住我的跨度。只需记住使用带有KO数据绑定的打开和关闭标记。
答案 1 :(得分:1)
你很亲密。您只需确保使用开始和结束标记指定td
,如:
<td data-bind="text: chid"></td>
<td data-bind="text: chname"></td>