3

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

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

<a href="#" data-bind="click: $root.RemoveActivity">Remove</a>

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

4

1 回答 1

7

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

而是做

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

父视图模型

removeActivity: function(activity) {
    this.activities.remove(activity);
}
于 2013-01-07T10:04:32.727 回答