我有一个html网格,每行返回一个复选框。目前我已将这些与敲除绑定到我的viewmodel。我已经足够捕获行检查的id了但是我不知道如何让Knockout给我一个列表,列出所有检查的行和行的每个单元格的内容。
最终的目的是让用户从该表中选择多行,然后导出该数据。所以我需要一个很好的方法来收集整行。
我只使用Knockout大约一个星期,所以我试图让它跟踪一些我可能更好的只是用javascript循环遍历表格的东西?
<tbody data-bind="foreach: projectListing">
<tr data-bind="css: $data.rowclass">
<td><input type="checkbox" data-bind="value: $data.id, checked: $root.selectedRows, click: $root.toggleRowSelection"/></td>
<td data-bind="text: $data.SORT_ID"></td>
<td data-bind="text: $data.PROJ_ID"></td>
</tr>
</tbody>
*我知道代码还不够,但我不得不在这里放一些东西,所以我可以列出一个jsFiddle的链接。
我有一个小提琴代表这个显示我到目前为止的代码。我想用这个小提琴做什么是每次我选中复选框,整个行内容应该出现。那会让我到达我需要进入真实项目的地方。
关于如何解决这个问题的任何想法?
这是我到目前为止所拥有的。
答案 0 :(得分:2)
您可以创建一个selectedItems计算来获取所选项目对象,而不是使用已检查的绑定获取id
self.selectedItems = ko.computed(function() {
return self.availableItems().filter(function(item) {
return item.Selected();
});
});
HTML
Selected Books:
<div data-bind="foreach: $root.selectedItems">
<span data-bind="text: Name"></span>
<br/>
</div>