我正在使用knockout.js。我试图通过自定义绑定创建一个确认对话框。
我有一个数组people
。通过foreach
绑定,我将显示每个数组条目以及与每个项目关联的删除链接。当用户点击删除链接时,打开确认对话框以确保用户是否要删除它。要显示确认对话框,我使用自定义绑定名称confirm
。每当用户单击删除按钮时,confirmMessageText(与元素相关联的observable)值都会更改,因此confirm
绑定更新函数调用。用户可以根据确认对话框决定删除该项目。我还创建了 FIDDLE EXAMPLE :
http://jsbin.com/ocakap/4/edit
我的问题:我遇到自定义绑定更新回调函数参数名bindingContext
的问题。通过这个我访问淘汰特殊属性名称$data
但是对于每个条目,$data
包含数组的最后一个元素对象(在我的小提琴示例中,它是Denise 。 您可以通过点击任何删除链接看到这一点,发生警报显示$ data parameter 的值。
如何解决这个问题,如何在更新回调函数中获取数组的当前元素对象条目?
答案 0 :(得分:1)
在点击绑定中,您更新强制敲除检查所有依赖项的确认消息,在这种情况下,KO运行确认绑定3次,出现对话框的最后一项是数组中的最后一个人。
要解决此问题,您需要引入一个变量来保存您要删除的person对象。
以下是工作修复http://jsbin.com/ocakap/12/edit。