2012-04-13 61 views
0

我有一個值的表,我需要在行和列上的總數。行總數是一個簡單的computed observable並且工作正常,但用於存儲列總數的computed observables數組不會更新。使用Knockout,爲什麼不是我的計算的observables數組更新?

在我的示例中,當更改網格中的值時,monthTotals數組不會更新。

爲什麼不更新這些更改?我應該這樣做嗎?

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

+0

我應該排在HTML中顯示? – 2012-04-13 20:36:12

+0

6000最初,但隨後應更新值,因爲您更改網格中的值 – Homer 2012-04-13 20:56:46

回答

2

monthNumber的val += parseFloat(self.resourceCategories[i].monthAmounts[monthNumber].amount());的值總是被置於其最後的值(11),因爲事後計算求值,並且使用最後一個值集爲monthNumber。

這裏是一個更新的jsfiddle與計算改爲普通函數,它在一個月計算:

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

0

UPDATE

我看着你的代碼多一些,並且想知道什麼是錯的。在JS小提琴,這是我所看到的:

enter image description here

什麼它應該被顯示?

你應該看看

https://github.com/ericmbarnard/KoGrid

+0

它初始化正常,但如果更改網格中的值,則列總數不會更新。 – Homer 2012-04-13 20:37:41

1

摶是正確的,爲什麼你當前使用monthNumber是造成問題。如果你想保留當前的風格,你可以在一個單獨的對象,它會保留在計算機重新計算月數封裝MonthTotal:

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

+0

我喜歡你的榜樣,謝謝! – Homer 2012-04-17 13:18:28

相關問題