我有一个复杂的knockout.js对象,它实际上是一个observableArray,里面有另一个observableArray。我有一个删除函数,它从第二个数组异步删除所选元素。一个项目正在数据库中存档,而客户端上的一个可观察属性被设置为false,使其从屏幕上消失。
使用$ root keyword:
创建删除按钮事件<a href="#" data-bind="click: $root.RemoveActivity">Remove</a>
是什么让我可以使用“this”关键字访问所选元素的详细信息。我的问题是,当从第二个数组中删除项目时,我想在第一个数组中将某些内容更改为其父项。正如我提到的“this”关键字指的是子项,是否有办法同时访问父项?
答案 0 :(得分:7)
mhu的答案是反模式,因为它在ViewModel和View结构之间创建了依赖关系。
取而代之的是
<a href="#" data-bind="click: $parent.removeActivity.bind($parent)">Remove</a>
父视图模型
removeActivity: function(activity) {
this.activities.remove(activity);
}