我的理解是否正确,如果beforeRemove
在 foreach 绑定中的 container-div 上设置了处理程序,这会导致淘汰赛不删除该项目?换句话说,beforeRemove就像数据库中的“替代”触发器?
问问题
93 次
1 回答
2
您的理解是正确的:如果您使用beforeRemove
orbeforeMove
处理程序,您有责任删除 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 回答