2013-03-07 2 views
1

У меня есть Еогеасп (более Фоос) таблицы, когда пользователь нажимает на элемент, и этот метод называется:Дублирование наблюдаемой границы к диалогу

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 

    }; 

проблема у меня в том, что если я пойду и редактировать этот новый наблюдаемый (новый addItem) в таблице, он изменяет все элементы (каждый добавочный элемент), которые были добавлены таким образом

ответ

1

Очень быстрое решение - использовать плагин knockout mapping, чтобы создать простой объект vanilla json, а затем новую модель нокаута от него :

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

Это будет разворачивать наблюдаемым, а затем создать еще один из его значений :)

Working sample on jsfiddle

+0

ах так он сохраняет наблюдаемый тип, очень умный! – FutuToad

+1

Да, если это невозможно, то нет двусторонней привязки. Кстати, если у вас есть модель, которая не отредактирована (не привязана к полям ввода), тогда нормально иметь не наблюдаемые поля (может быть, даже немного быстрее на миллисекундах)) –

+0

еще раз спасибо! Прохладный пост в локализации ресурса скрипта в ASP.NET MVC btw! – FutuToad

Смежные вопросы