gpt4 book ai didi

javascript - knockout : Binding observable array to click binding does not work as expected

转载 作者:行者123 更新时间:2023-11-27 23:07:07 25 4
gpt4 key购买 nike

如果我想从 View 中删除可观察数组中的元素,我可能会这样做..

<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 返回一个仅接受一个参数的函数。这也不起作用,我得到了同样的查看错误。

最佳答案

它不会工作,因为 this不会是records数组当 click绑定(bind)调用 remove方法。

您可以使用绑定(bind)来修复此问题:

click: $parent.records.remove.bind($parent.records)

在我看来,您的原始解决方案具有专用的 removeRow View 模型上的函数是一个更干净的解决方案。

关于javascript - knockout : Binding observable array to click binding does not work as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36492529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com