如果我想从视图中删除可观察数组中的元素,我可能会做这样的事情。
<div data-bind="foreach: records">
<input type="checkbox" data-bind="checked: isChecked, click: $parent.removeRow">
</div>
然后在我的viewModel ....
this.removeRow = function(item) { this.records.remove(item); }
按预期工作。
但是,我认为这是一个额外的步骤,为什么不尝试
click: $parent.records.remove
认为$data
将被传递以删除。这不起作用,我得到Uncaught TypeError: this.peek is not a function
我想也许是因为事件是作为第二个参数传递的,这可能会导致remove()
出现问题,所以我试过了:
click: _.unary($parent.records.remove)
_.unary返回一个只接受一个参数的函数。这也没有用,我得到了相同的偷看错误。