1

マッピング プラグインを使用して、イベント ソーシング イベントから配列を更新しています

this.itemMapping = {
    key: function (item) {
        return ko.utils.unwrapObservable(item.id);
    },
    create: function () {
        return new ItemViewModel();
    },
    update: function (options) {
        return options.target.update(options.data);            
    }
};

問題は、イベントが一度に 1 つずつ発生することですが、配列にすべてを反映させたいのです。ノックアウト マッピングのデフォルトの動作は、データに見つからないアイテムを削除することですが、これを無効にすることはできますか?

問題を示すフィドル

http://jsfiddle.net/TJ3fv/

4

1 に答える 1

-1

同じ問題がありました。2 番目の observableArray を作成し、サブスクライブして更新する方がはるかに簡単であることがわかりました。

function(){
    ko.mapping.fromJS({
        last_events: []     
    }, {}, this);

    events = ko.observableArray()

    this.last_events.subscribe(function(items){
        for(var i=0; i < items.length; i++){
            events.push(items[i])
        }
    })
}
于 2013-06-14T02:38:17.167 に答える