1

我有一个包含嵌套树数组的可观察数组。每个数组项都有一个 children 属性,用于保存他的子项。当我单击复选框时,我想删除勾选的表格行,这反过来也应该删除显示所选项目的子项的行。我怎样才能做到这一点?我在这里有一个关于 jsFiddle 的小例子

这是我的淘汰赛模板:

<script id="nodeTmpl" type="text/html">
    <tr>
        <td>
            <input type="checkbox" name="check[]" />
        </td>
        <td data-bind="text: name"></td>
    </tr>
    <!-- ko template: { name: 'nodeTmpl', foreach: nodes } --><!-- /ko -->
</script>

我必须使用表格而不是 ul 因为我使用的是引导程序,所以我对其进行了样式设置。另外,我有多个列和样式 div 或 ul 没有意义

4

1 回答 1

3

这是一个解决方案。由于您有一个树结构,因此每个节点都有一个带有节点数组的父节点(如果我们也重命名rootnodes)。使用 Knockout,您始终可以使用 访问父对象$parent,从而使用$parent.nodes.

<input type="checkbox"
     data-bind="click: function() { $parent.nodes.remove($data); }" />

JsFiddle:http: //jsfiddle.net/mbest/5qqWn/3/

于 2013-01-05T00:03:09.780 回答