【发布时间】:2015-10-02 21:14:12
【问题描述】:
我有一个计算出来的 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 数组时,计算值不会得到更新。这是为什么?我假设依赖链有问题?
是因为我使用了下划线吗?
亲切的问候,
DenEwout。
【问题讨论】:
-
你是如何向数组中添加东西的?您是在实际的
observableArray上还是在底层的原生 javascript 数组上调用.push等? -
事实证明这正是我的问题,一个愚蠢的错误,我看得太远了。谢谢!
标签: knockout.js computed-observable