此代码不起作用:
var mappingOption = {
key: function (data) {
return ko.utils.unwrapObservable(data.id);
}
ko.mapping.fromJS(serverItems, mappingOption, viewModel.items);
我想要两个项目的UNION(viewModel.items和serverItems)
答案 0 :(得分:1)
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)进行创建调用,该集合调用创建类B构造函数,并传入相关数据。
然后,ClassB从构造函数中获取数据,并将其合并到自身中。我很确定这会因ClassB的键映射而起作用。但是没有时间去测试它; - )