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