2014-05-06 31 views
0

我在我的敲除應用以下結構:敲除動態地更新observableArray值

  • 計算值這是兩個可觀察量(COMP1)
  • 一種observableArray(默認爲空)
  • 總和一組數據通過單獨的viewModel函數被推入observableArray

我的問題在於當計算的observable(comp1)被推入ar當它在主視圖中更新時,其值在表中顯示時(通過單獨的viewModel函數)不會改變。

我已經設置了一個codepen,以更好地解釋問題並使其更清楚一點,因爲我真的不認爲我已經很好地解釋了這個問題,並且解釋這個問題有點複雜通過文本!

簡而言之:當在主視圖中更新時,(comp1)的值在表內不會更新(它是從observableArray生成的)。

如果有什麼你不確定的,那麼請問,但我認爲一旦你看到Codepen,一切都應該更清晰。

http://codepen.io/anon/pen/nwgGB

回答

3

因爲你傳遞maths_total(self.maths_total())的展開值。這種方式tableView不知道該值何時更改。相反,你應該通過實際觀察到的:

self.table_totals.push(new tableView('column 1', 15, self.maths_total, 45)); 

再檢查裏面tableView

self.val_2 = ko.isObservable(val2) ? val2 : ko.observable(val2) 

http://codepen.io/anon/pen/qFsgu

變量