knockout beforeRemove:它是否像数据库“反而”触发?

时间:2013-10-06 12:03:38

标签: knockout.js

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

1 个答案:

答案 0 :(得分:2)

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

documentation

中也说明了这一点
  

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