0

値のリストを含む観測可能な配列があり、すべての値には : によって計算されたパーセントがあります
100 * valueQuantity / valuetotal

valueQuantity = input value
valueTotal = value0 + value1 + value2

ユーザーが値を変更した場合、変更するvaluetotal必要があり、選択した行の値 (value0、value1、および value2) に対して再計算を実行する必要があります。

エクステンダーを使用してパーセントを計算しています。

sample : 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 値にする必要があります。例えば:

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

その後、バインダーは「正常に機能する」はずです。マークアップで ko.observables を宣言するのは珍しいようです。

于 2013-02-18T16:21:40.517 に答える