2012-04-13 4 views
0

私は行と列に合計が必要な値の表を持っています。行の合計は単純なcomputed observableで、正常に動作しますが、列の合計を格納するために使用されるcomputed observablesの配列は更新されません。ノックアウトを使用して、計算された観測値の配列が更新されないのはなぜですか?

私の例では、グリッドの値を変更すると、monthTotals配列は更新されません。

なぜこれらの変更は更新されませんか?私はこれを違うやり方で行うべきですか?

http://jsfiddle.net/MYMtH/5/

+0

:あなたはあなたの現在のスタイルを維持したい場合は、ときに計算を再計算のための月の数を維持するだろう、別のオブジェクトにMonthTotalをカプセル化することができますか?最初は –

+0

6000ですが、グリッドの値を変更すると値が更新されます。 – Homer

答えて

2
を見てみる必要があります

val += parseFloat(self.resourceCategories[i].monthAmounts[monthNumber].amount());でmonthNumberの値は常に、その最後の値(11)に設定されていますmonthNumberのために。ここで

計算するために月にかかる通常の関数に変更して計算して更新jsfiddleです:

http://jsfiddle.net/MYMtH/7/

0

UPDATE

私はいくつかのより多くのあなたのコードを見て、何が間違っている疑問に思って。

enter image description here

それが何を示すべきである:JSのフィドルでは、これは私が見たものでしょうか?計算された事後評価し、最後の値セットを使用しているため

あなたは

https://github.com/ericmbarnard/KoGrid

+0

グリッド内の値を変更すると、列の合計は更新されません。 – Homer

1

トゥアンはmonthNumberのあなたの現在の使用が問題を引き起こしている理由として正しいです。行がHTMLで表示されなければならない何

http://jsfiddle.net/jearles/MYMtH/8/

+0

私はあなたの例が好きです、ありがとう! – Homer

関連する問題