此代码不起作用:
var mappingOption = {
key: function (data) {
return ko.utils.unwrapObservable(data.id);
}
ko.mapping.fromJS(serverItems, mappingOption, viewModel.items);
我想将两个项(viewModel.items和serverItems)合并
var ClassA = new function(data) {
ko.mapping.fromJS(data, {
key: function (item) {
return ko.utils.unwrapObservable(item.id);
},
'items': {
create: function (itemData) {
return new ClassB(itemData.data);
}
}
}, self);
}
var ClassB = new function(data) {
ko.mapping.fromJS(data, {
key: function(item) {
return ko.utils.unwrapObservable(item.id);
};
), self);
}
所以ClassA有一个ClassB的集合。在创建时,它调用映射函数,该函数对(ClassB类型的)项集合进行创建回调,该集合调用create class B构造函数,并传递相关数据。
然后,ClassB从构造函数中获取数据,并将其合并到自身中。
由于ClassB的密钥映射,我确信这将起作用。但还没有时间测试它;-)