0

我的理解是否正确,如果beforeRemove在 foreach 绑定中的 container-div 上设置了处理程序,这会导致淘汰赛删除该项目?换句话说,beforeRemove就像数据库中的“替代”触发器?

4

1 回答 1

2

您的理解是正确的:如果您使用beforeRemoveorbeforeMove处理程序,您有责任删除 DOM 节点。

这也在文档中说明:

beforeRemove— 在删除数组项时调用,但在删除相应的 DOM 节点之前。如果您指定了 beforeRemove 回调,那么移除 DOM 节点就成为您的责任。

您可以通过添加一个空处理程序轻松地尝试此操作,beforeRemove并且这些项目不会自动删除:

<ul data-bind="foreach: {data: items, beforeRemove: function() { }}">
    <li>
        <span data-bind="text: $data"></span> 
        <button data-bind="click: $parent.remove">Remove</button>
    </li>
</ul>

演示JSFiddle

于 2013-10-06T13:10:14.507 回答