有没有办法将 JSON 数据对象映射到可观察数组,然后依次将可观察数组的每个项目初始化为特定类型的视图模型?
我查看了所有淘汰赛的文档以及此处的淘汰赛和映射示例,但我找不到任何适合我所追求的答案。
所以,我有以下 JSON 数据:
var data = {
state : {
name : 'SD',
cities : [{
name : 'Sioux Falls',
streets : [{
number : 1
}, {
number : 3
}]
}, {
name : 'Rapid City',
streets : [{
number : 2
}, {
number : 4
}]
}]
}
};
我有以下视图模型:
var StateViewModel = function(){
this.name = ko.observable();
this.cities = ko.observableArray([new CityViewModel()]);
}
var CityViewModel = function(){
this.name = ko.observable();
this.streets = ko.observableArray([new StreetViewModel()]);
}
var StreetViewModel = function(){
this.number = ko.observable();
}
是否有可能使用给定的数据结构并使用淘汰赛的映射插件,让生成的 StateViewModel 包含一个填充有 2 个 CityViewModels 的 observableArray,并且每个 CityViewModel 包含一个填充有 2 个 StreetViewModels 的 observableArray?
目前使用映射插件,我能够将其映射到 StateViewModel,但是“城市”和“街道”集合填充了通用对象,而不是我的城市和街景模型的实例。
它们最终得到了正确的可观察属性和值,它们不是我的视图模型的实例,这就是我所追求的。