2013-02-18 65 views
0

我有一個可觀察數組,其中有一個值列表,每個值的百分比計算公式如下:
100 * valueQuantity/valuetotal在更改1列後更新整行+ Knockout.js

valueQuantity = input value
valueTotal = value0 + value1 + value2

如果用戶改變一個值,則valuetotal需要改變和重新計算具有用於所選擇的行中的值(value0,value1和值2)被執行。

我正在使用擴展程序來計算百分比。

樣本:JS fiddle sample

我需要在表格中變更的值後更新值。

回答

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似乎很不尋常。

+0

請問您可以用解決方案更新jsfiddle嗎? – 2013-02-18 16:47:34

+0

來吧:-)先給它一個鏡頭,如果需要的話我會更正。 – 7zark7 2013-02-18 17:50:34

+0

我沒有但當設置ko.observable(50)它將輸入設置爲NaN – 2013-02-18 18:04:02