2015-10-21 100 views
0
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre> 

    <ul data-bind="foreach: arrData" > 
     <li> 
      <span data-bind="text: name"></span> 
     </li> 
    </ul> 

該結構就像$ data.arrData,其中arrData是一個observablearray。 我修改的內容是這樣的:我的Observablearray在淘汰賽foreach綁定不更新?

arrData().splice(0, 1, ko.toJS(data.selectedData)); 

$ data變量不更新,但不是observableArray。但是如果我在開始時插入數組,那麼舊值將顯示,但不是新值。

+0

可以添加一個樣本小提琴解釋這個問題或嘗試arrData.splice(//)。 –

回答

3

通過使用arrData()讀取arrData的值,您將回落到底層陣列。看來你要使用的splice版本直接可觀測陣列本身上:

arrData.splice(0, 1, ko.toJS(data.selectedData)); 
+0

有什麼解決方案? – marko

+2

嗯...正是我發佈的(從arrData()中除去括號) – Jamiec

+0

或者你可以通過做同樣的事情來做到這一點:var temp = arrData(); temp.splice(0,1,ko.toJS(data.selectedData)); arrData(溫度);' – Tyblitz