【问题标题】:How to know when observables in observableArray change (knockoutJS)?如何知道 observableArray 中的 observables 何时发生变化(knockoutJS)?
【发布时间】:2014-06-19 10:49:57
【问题描述】:

我有一个我创建的数据结构的 observableArray,在这个数据结构中,其中一个字段是可观察的。如何跟踪内部可观察对象(数据结构内部)的值何时发生变化?我尝试订阅内部变量,但没有成功。

【问题讨论】:

  • 提供一些代码和可能的小提琴来演示您创建的结构。如果您订阅了它并将其正确绑定到视图,它应该可以工作。
  • 如果您说明为什么要订阅存储在 observableArray 中的 observables 也会非常有帮助,这样我们就可以考虑替代解决方案。
  • 如果你从一个计算中访问内部 observable,那么计算将解析链中的所有 observable

标签: javascript knockout.js knockout-2.0


【解决方案1】:

我设置了一个小提琴来模仿你的情况。它由一个具有 ko.observableArray 的视图模型组成,并且数组中的每个项目都包含 ko.observable 属性。假设您已经定义了在数据结构中创建对象的函数,您可以在每个函数中放置一个subscribe 函数。

这是link to the fiddle

代码:

function luggage(data) {
    var self = this;
    this.id = ko.observable(data.id);
    this.color = ko.observable(data.color);
    this.color.subscribe(function (newvalue) {
        console.log(self.id() + ' changed!');
    });
}

function vm() {
    this.train = ko.observableArray():
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    相关资源
    最近更新 更多