2016-02-13 3 views
0

Это дополнительный вопрос здесь: Get observable from arrayМожет ли knockout.js ждать привязки до onClick?

теперь у меня есть наблюдаемый из списка, и я передать его в модальном для редактирования, как это:

var report = currentViewModel.getReport(reportId); 
ko.applyBindings(report,$("#"+targetDiv)[0]); 

(targetDiv является модальным что я только что загрузился через ajax)

Теперь модальное изображение появляется, и когда я редактирую название отчета, как только я теряю фокус, имя изменяется в исходном списке. Я начинаю разыгрывать этот нокаут, и это именно то поведение, которое я ожидаю.

Мой вопрос: как мне заставить его не делать этого, пока я не нажму «Сохранить»? На моделе есть кнопка отмены, и я хотел бы, чтобы любые изменения подождали, пока я не нажму кнопку «Сохранить». Я видел в документации, что я могу сделать это при нажатии клавиши, но я хочу, чтобы он был включен.

В любом случае, чтобы делать то, что я делаю после?

+0

Вам нужно будет привязать другой наблюдаемый к текстовому вводу. Затем на кнопке сохранения сделайте что-то вроде 'data-bind =" click: function() {report.name (inputObservable())} "'. Я не уверен в структуре 'report', поэтому я делаю некоторые предположения с этим кодом. – DonovanM

+0

Для меня может понадобиться фактический (но желательно * минимальный *) репрограммирование вашего сценария, чтобы помочь, не догадываясь, что может сработать для вашей ситуации. – Jeroen

+0

Расширяясь от того, что сказал @DonovanM, вам нужно что-то вроде «displayValue», наблюдаемого и «editValue», наблюдаемого, а затем некоторый механизм для обновления первого, как только «isBeingEdited» в форме отменяется (например, вычисленный, который запускается изменение этого флага). – gzost

ответ