0

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

valueQuantity = input value
valueTotal = value0 + value1 + value2

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

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

示例:JS小提琴示例

更改表中的值后,我需要更新这些值。

4

1 回答 1

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 值,而不是 observable。例如:

percent0: ko.computed(function() {
    return this.value0() / (parseFloat(this.value0()) + parseFloat(this.value1()) + parseFloat(this.value2()));
}),

那么你的活页夹应该“正常工作”。您在标记中使用声明 ko.observables 似乎不寻常。

于 2013-02-18T16:21:40.517 回答