1

このコードは機能しません:

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

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

両方のアイテム(viewModel.itemsとserverItems)をUNIONしたい

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 に答える