1
我在JS如下:淘汰赛计算不更新
function reportCriteria(fieldId,fieldName,filterOption,optionText,filterChoice) {
return {
fieldId: fieldId
fieldName: fieldName,
filterOption: filterOption,
optionText: optionText,
filterChoice: filterChoice,
description: ko.computed(function() {
return fieldName + " which " + optionText + " " + filterChoice;
})
};
}
我在我的模型中observableArray持有这些,我一推:model.criteriaEntries.push(新reportCriteria(paramshere));
所有看起来不错,直到我尝试编辑一个像这样:
var criItem = ko.utils.arrayFirst(model.criteriaEntries(), function (item) {
return item.fieldId == id;
});
if (criItem) {
criItem.filterOption = option;
criItem.optionText = opttext;
criItem.filterChoice = choice;
model.criteriaEntries.valueHasMutated();
}
我没有得到任何错误,我可以调试,看到该对象已更改,但没有在屏幕上改变计算的描述不更新为尽管增加valueHasMutated?
但它不是一个可观察 – user1166905
是它是。在你发布的代码中,optionText被设置为这样:optionText:ko.observable(optionText) –
道歉,那是我的错误。它不是一个可观察的我相应地改变了上面的代码。这是因为我试图将其改为可观察的测试,但没有任何区别,在改回之前必须复制代码,对不起。 – user1166905