复制可观察对话的界限

时间:2013-03-07 15:12:33

标签: knockout.js

我有一个foreach(在Foos上)表,用户点击一个项目并调用此方法:

 AddFoo = function (addingItem) {
        var addingItem = jQuery.extend(true, {}, existingObservableBoundToJqueryDialogue);
        this.Foos.push(addingItem);  //EditingItem is bound to the add dialogue, and I want a new observable with the same properties not bound to the dialogue

    };

我遇到的麻烦是,如果我在表中编辑这个observable(new addItem),它会改变以这种方式添加的所有项目(每个addsItem)

1 个答案:

答案 0 :(得分:1)

非常快速的解决方案是使用knockout mapping插件创建普通的vanilla json对象,然后从中创建新的淘汰模型:

var addingItem = ko.mapping.fromJS(ko.mapping.toJS(existingObservableBoundToJqueryDialogue));

这将展开observable,然后从其值中创建另一个:)

Working sample on jsfiddle