2015-07-01 5 views
1

Я хочу использовать защищенный наблюдаемым в моем коде, и поэтому я нашел этот учебник:Нокаут защищен наблюдаемым

HERE

Во время игры с демо на сайте, я нашел следующий сценарий:

  • Нажмите кнопку редактирования для определенной строки, а затем измените значение поля ввода, но НЕ нажмите кнопку «Принять».
  • Затем перейдите к другой строке и нажмите кнопку редактирования.
  • Затем вернитесь к строке, в которой вы изменили одно из значений поля ввода, нажмите «Редактировать», затем нажмите «Принять». Вы обнаружите, что значение, которое вы изначально изменили, будет сохранено.

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

Итак, как вы решили исправить эту проблему?

ответ

1

Проблема не в защищенном наблюдаемом, а в том, как демо обрабатывает кнопку редактирования.

Чтобы сделать его работу для сценария в editItem вам нужно отменить все ожидающие редактирования, прежде чем приступить к редактированию новой строки:

this.editItem = function(item) { 
    if (self.selectedItem() != null) 
     self.cancelItemEdit() 
    self.selectedItem(item); 
}; 

Demo JSFiddle.

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