如何用新对象(使用映射插件创建)替换视图模型中的整个对象(使用映射插件创建)?请注意我在视图模型中的评论...
function viewmodel(objServerModel) {
var self = this;
self.profile = objServerModel; //Using ko.observable(objServerModel) doesn't seem to work. I need to replace this object every time I load new content from the server and it should automatically update all controls bound to it. Note that this is the object that is created using ko.mapping.fromJS
self.devices = ko.observableArray(['one', 'two']);
});
下面的函数只被调用一次。从下一次开始,每当我从服务器检索新数据时,我只需要替换 self.profile 即可。如果我使用 self.profile=ko.observable(objServerModel),它就不起作用。每当我从服务器异步加载新数据时,如何替换视图模型中的配置文件对象?
function ApplyKnockOut() {
var objServerModel = '@Html.Raw(HttpUtility.JavaScriptStringEncode(clsTest.ReadXmlIntoModel()))'
var objResult = $.parseJSON(objServerModel);
var objModelFromServer = ko.mapping.fromJS(objResult);
var clientViewModel = new viewmodel(objModelFromServer);
ko.applyBindings(clientViewModel);
return clientViewModel;
}
我将不胜感激任何帮助。
谢谢
编辑:替换的映射模型结构将是相同的。只有值会有所不同。
这是我的 jsfiddle:http: //jsfiddle.net/rzFgU/