更改1列+ Knockout.js后更新整行

时间:2013-02-18 16:10:09

标签: jquery knockout.js knockout-2.0 knockout-mvc

我有一个可观察的数组,带有一个值列表,每个值都有一个百分比计算:
100 * valueQuantity / valuetotal

valueQuantity = input value
valueTotal = value0 + value1 + value2

如果用户更改了值,则valuetotal需要更改,并且必须对所选行中的值(value0,value1和value2)执行重新计算。

我正在使用扩展程序来计算百分比。

示例:JS fiddle sample

我需要在更改表格中的值后更新值。

1 个答案:

答案 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似乎并不常见。