我有一个计算的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。
答案 0 :(得分:0)
我需要确保在可观察数组上使用.push而不是本机javascript数组。举个例子,我应该用这个:
structure().valueSets.push(valueset);
而不是:
structure().valueSets().push(valueset);
感谢James Thorpe提醒我。