2012-08-06 45 views
0

我有一個javascript對象(viewModel)綁定到視圖。我從服務器獲取新版本(newViewModel)。 (你可以想象股票市場價格應用在這一點)更新一個深度結構化的JavaScript對象從另一個knockout.js

我不想綁定newViewModel,因爲我不想鬆散舊的viewModel的參考。

所以我需要從服務器響應更新我現有的JavaScript對象的所有屬性!

這可能是javascript問題,但我的viewModel有這麼多可觀察的屬性和子屬性。 (淘汰賽的可觀察)

Ps:jQuery的$ .extend不起作用。

被更新(這似乎OK):

ko.mapping.fromJS(newViewModel,視圖模型);似乎工作..我無法識別它,因爲「Vs.Net Intellisense」沒有顯示它的重載。

我的對象結構非常深。如果我看到任何問題,我會通知你。

修訂版(不工作):

viewModel.x []長度= 2

newViewModel.x []長度= 12

上述代碼替換以新的所有的x。 (我失去了viewModel.x [0],viewModel.x [1]引用)!!

所以我的html不與我的對象同步。 viewModel.x [0]在右側的籃子裏,但它
不在籃子裏的左側(屏幕)

+1

我認爲「Mapping」插件就是您要找的內容:knockoutjs.com/documentation/plugins-mapping.html – Niko 2012-08-06 22:29:43

回答

0

有沒有神奇的方式呢。因爲我需要匹配舊的數組元素與新聞。 「代碼」需要知道數組元素的「鍵」。

我訪問所有數組元素,如果我可以在我的舊數組中找到newElement我更新oldElement的屬性,如果我找不到我添加newElement到oldArray。我不得不這樣做。

相關問題