我有一个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)
答案 0 :(得分:1)
非常快速的解决方案是使用knockout mapping插件创建普通的vanilla json对象,然后从中创建新的淘汰模型:
var addingItem = ko.mapping.fromJS(ko.mapping.toJS(existingObservableBoundToJqueryDialogue));
这将展开observable,然后从其值中创建另一个:)