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);            
    }
};

问题是事件一次出现,但我希望数组能够反映所有事件。剔除映射默认行为是删除数据中未找到的项目,我可以禁用它吗?

显示问题的小提琴

http://jsfiddle.net/TJ3fv/

4

1 回答 1

-1

有同样的问题。我发现创建第二个 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 回答