knockout自定义绑定回调函数参数名称bindingContext的问题

时间:2012-11-05 11:53:51

标签: javascript jquery knockout.js

我正在使用knockout.js。我试图通过自定义绑定创建一个确认对话框。 我有一个数组people。通过foreach绑定,我将显示每个数组条目以及与每个项目关联的删除链接。当用户点击删除链接时,打开确认对话框以确保用户是否要删除它。要显示确认对话框,我使用自定义绑定名称confirm。每当用户单击删除按钮时,confirmMessageText(与元素相关联的observable)值都会更改,因此confirm绑定更新函数调用。用户可以根据确认对话框决定删除该项目。我还创建了 FIDDLE EXAMPLE

http://jsbin.com/ocakap/4/edit

我的问题:我遇到自定义绑定更新回调函数参数名bindingContext的问题。通过这个我访问淘汰特殊属性名称$data但是对于每个条目,$data包含数组的最后一个元素对象(在我的小提琴示例中,它是Denise 您可以通过点击任何删除链接看到这一点,发生警报显示$ data parameter 的值。

如何解决这个问题,如何在更新回调函数中获取数组的当前元素对象条目?

1 个答案:

答案 0 :(得分:1)

在点击绑定中,您更新强制敲除检查所有依赖项的确认消息,在这种情况下,KO运行确认绑定3次,出现对话框的最后一项是数组中的最后一个人。

要解决此问题,您需要引入一个变量来保存您要删除的person对象。

以下是工作修复http://jsbin.com/ocakap/12/edit