2012-08-06 46 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。我不得不这样做。

相关问题