Json 剔除:嵌套元素作为可观察元素

Json 剔除:嵌套元素作为可观察元素,json,knockout.js,knockout-mapping-plugin,observable,Json,Knockout.js,Knockout Mapping Plugin,Observable,我正试图用knockout.js构建一个complexe视图,但遇到了一些问题。。 视图模型的内容数据作为JSON通过ajax加载。JSON非常复杂,有多个嵌套对象,其中一些应该可以观察到,而另一些则不能 这里有一个小例子(真实的例子是更深层次的) 有没有可能在淘汰赛中做到这一点 谢谢你的帮助 您必须对您的对象做一些工作…您可以使用映射插件,但是您仍然需要创建一些对象来接收数据并有条件地应用绑定 var KOObject = function(rawdata) { var self =

我正试图用knockout.js构建一个complexe视图,但遇到了一些问题。。 视图模型的内容数据作为JSON通过ajax加载。JSON非常复杂,有多个嵌套对象,其中一些应该可以观察到,而另一些则不能

这里有一个小例子(真实的例子是更深层次的)

有没有可能在淘汰赛中做到这一点


谢谢你的帮助

您必须对您的对象做一些工作…您可以使用映射插件,但是您仍然需要创建一些对象来接收数据并有条件地应用绑定

var KOObject = function(rawdata) {
    var self = this;
    self.BaseData = new BaseDataObject(rawdata.BaseData);
    self.DataArray = rawdata.DataArray; 
}

var BaseDataObject = function(baseData) {
    var self = this;
    self.Title = baseData.Title;
    // you could keep chaining the creation of objects with this concept
    self.DataArray = ko.observableArray(baseData.DataArray);
    self.SecondArray = ko.observableArray(baseData.SecondArray);
}
在应用绑定之前,请新建此对象

ko.applyBindings(new KOObject(rawdata));

映射插件是一个很好的想法,它可以自动使用knockout对数据进行序列化和反序列化…如果您可以手动初始化数据集,那么它并不总是必要的…无论如何,这是一个很好的做法。

您是否看过@MajorByte?我认为您应该将该注释转化为答案,这是现场的。可能是复制品
ko.applyBindings(new KOObject(rawdata));