0

我有一个计算出来的 observable,看起来像这样:

this.isActive = ko.computed<boolean>(function () {
    this.structure().valueSets();
    return this.structure().containsValueSet(this.valueSet());
}, this);

this.structure() 是一个 StructureVM 类的实例(我使用的是 TypeScript)。StructureVM 类中的 containsValueSet 函数如下所示:

containsValueSet(valueSetVM:ValueSetVM):boolean {
    var valueSet:ValueSetVM = _.find(this.valueSets(), function (valueSet:ValueSetVM) {
        if (valueSet.id === valueSetVM.id) {
            return true;
        }
    });
    return (Objects.isInstantiated(valueSet));
}

我在 ValueSetVM (this.valueSets()) 列表上使用 _.find。将某些内容添加到 valueSets 数组时,计算值不会得到更新。这是为什么?我假设依赖链有问题?

是因为我使用了下划线吗?

亲切的问候,

登尤特。

4

1 回答 1

0

我需要确保在可观察数组上使用 .push 而不是在本机 javascript 数组上使用。举个例子,我应该使用这个:

structure().valueSets.push(valueset);

代替:

structure().valueSets().push(valueset);

感谢詹姆斯索普提醒我。

于 2015-07-14T10:45:04.537 回答