我在这里发布了我的代码:http: //jsfiddle.net/HYDU6/6/ 这是我实际使用的非常精简的版本,但抓住了我的问题的本质。我的视图模型是这样的:
var viewModel = {
objects: {
foo: [
{ text: "Foo's initial" },
],
bar: [
{ text: "Bar's initial" },
]
}
}
我正在使用 ko.mapping 插件和我的create
处理程序进行objects
实例化Obj
,objects.foo
然后objects.bar
返回数组中的结果两项。这部分工作正常;我用
var view = {};
ko.mapping.fromJS(viewModel, mapping, view);
我的问题是根据新数据进行更新。(即,从服务器获取数据)。我有一个新数据对象,我尝试
ko.mapping.fromJS(new_model, mapping, view);
我怀疑这是不正确的,但尽管进行了广泛的搜索,但我仍无法使其正常工作。(相信我,已经好几天了。):无论如何,感谢您的帮助。
编辑:所以我基本上已经弄清楚了——我过于依赖 mapping.fromJS 并且某些东西没有被包装到 observables 中。我还意识到我不需要 create(),只需要 update(),因为无论如何它都是在 create() 之后调用的。如果您有类似的问题,请告诉我!