Как отменить / отменить изменения наблюдаемой модели (или заменить модель в массиве нетронутой копией)

У меня есть viewModel с observableArray объектов с наблюдаемыми переменными.

В моем шаблоне отображаются данные с редактированием Кнопка, которая скрывает элементы отображения и показывает элементы ввода с привязанными значениями. Вы можете начать редактирование данных, а затем у вас есть возможность отменить. Я бы хотел, чтобы эта отмена вернулась к неизменной версии объекта.

Я попытался клонировать объект, выполнив что-то вроде этого:

viewModel.tempContact = jQuery.extend({}, contact);

или

viewModel.tempContact = jQuery.extend(true, {}, contact);

, но viewModel.tempContact изменяется, как только происходит контакт.

Есть ли что-нибудь встроенное в KnockoutJS, чтобы справиться с такой ситуацией, или мне лучше просто создать новый контакт с точно такими же данными и заменить измененный контакт новым контактом при отмене?

Любой совет очень полезен. оценен. Спасибо!

23
задан Erik Philips 5 October 2016 в 16:08
поделиться