私は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 があります。
次のように編集しようとするまで、すべて問題ないように見えます。
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 を追加しても画面上で何も変化しないため、計算された説明は更新されません。