如何通过敲除映射插件将viewModel.items与serverItems合并



此代码不起作用:

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的密钥映射,我确信这将起作用。但还没有时间测试它;-)

最新更新