knockout.js引用父对象

Bar*_*osz 3 javascript knockout.js

我有一个复杂的knockout.js对象,它实际上是一个observableArray,里面有另一个observableArray.我有一个删除函数,它从第二个数组异步删除所选元素.一个项目正在数据库中存档,而客户端上的一个可观察属性被设置为false,使其从屏幕上消失.

使用$ root关键字创建删除按钮事件:

<a href="#" data-bind="click: $root.RemoveActivity">Remove</a>
Run Code Online (Sandbox Code Playgroud)

是什么让我可以使用"this"关键字访问所选元素的详细信息.我的问题是,当从第二个数组中删除项目时,我想在第一个数组中将某些内容更改为其父项.正如我提到的"this"关键字指的是子项,是否有任何方法可以同时访问父项?

And*_*ers 7

mhu的答案是反模式,因为它在ViewModel和View结构之间创建了依赖关系.

相反

<a href="#" data-bind="click: $parent.removeActivity.bind($parent)">Remove</a>
Run Code Online (Sandbox Code Playgroud)

父视图模型

removeActivity: function(activity) {
    this.activities.remove(activity);
}
Run Code Online (Sandbox Code Playgroud)