我有一个可观察的数组,带有一个值列表,每个值都有一个百分比计算:
100 * valueQuantity / valuetotal
。
valueQuantity = input value
valueTotal = value0 + value1 + value2
如果用户更改了值,则valuetotal
需要更改,并且必须对所选行中的值(value0,value1和value2)执行重新计算。
我正在使用扩展程序来计算百分比。
我需要在更改表格中的值后更新值。
答案 0 :(得分:1)
计算中需要更改的每个值都需要是模型中的ko.observable。 例如:
{ name: "CEP 7", value0: ko.observable(50), percent0: 0, value1: ko.observable(50), percent1: 0, value2: ko.observable(20), percent2: 0 },
无论应计算哪个值,都应该是ko.computed值,而不是可观察值。例如:
percent0: ko.computed(function() {
return this.value0() / (parseFloat(this.value0()) + parseFloat(this.value1()) + parseFloat(this.value2()));
}),
然后你的活页夹应该“正常工作”。您在标记中使用声明ko.observable似乎并不常见。