禁用删除项目

时间:2013-05-08 09:03:06

标签: knockout.js knockout-mapping-plugin

我正在使用映射插件从事件源事件中更新数组

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

问题是事件一次出现一个,但我希望数组能够全部反映出来。 Knockout映射的默认行为是删除数据中找不到的项,我可以禁用它吗?

显示问题的小提琴

http://jsfiddle.net/TJ3fv/

1 个答案:

答案 0 :(得分:-1)

有同样的问题。我发现更容易创建第二个observableArray并通过subscribe更新它。

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