1

此代码不起作用:

var mappingOption = {
     key: function (data) {
        return ko.utils.unwrapObservable(data.id);
    }

ko.mapping.fromJS(serverItems, mappingOption, viewModel.items);

我想联合这两个项目(viewModel.items 和 serverItems)

4

1 回答 1

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 的集合。在创建时,它调用映射函数,该函数对调用创建类 B 构造函数的项目集合(ClassB 类型)进行创建回调,并传入相关数据。

ClassB 然后从构造函数中获取数据,并将其合并到自身中。

由于 ClassB 的键映射,我很确定这将起作用。但是没有时间测试它;-)

于 2012-11-07T01:44:34.263 回答