knockout.js引用父对象

时间:2013-01-07 09:03:09

标签: javascript knockout.js

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

使用$ root keyword:

创建删除按钮事件
<a href="#" data-bind="click: $root.RemoveActivity">Remove</a>

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

1 个答案:

答案 0 :(得分:7)

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

取而代之的是

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

父视图模型

removeActivity: function(activity) {
    this.activities.remove(activity);
}