sapui5 odata вернуть модель после ошибки отправки изменений - PullRequest
0 голосов
/ 24 февраля 2019

Я отобразил список элементов (привязка агрегации) и кнопку редактирования для каждого элемента, чтобы редактировать значения элементов.Кнопка «Правка» открывает всплывающее окно, в котором я могу изменить значения.

Я использую двустороннее связывание и вызываю submitChanges () после редактирования значений во всплывающем окне и нажатия всплывающей кнопки «ОК».

submitChanges имеет два обратных вызова - успех и ошибка.Теперь, когда из бэкэнда приходит ошибка (например, другой пользователь в данный момент редактирует элемент), я могу обработать и показать сообщение об ошибке.И данные не меняются в бэкэнде.Однако сама модель (во внешнем интерфейсе) изменяется несмотря на ошибку.

Это то, что должно обрабатываться самой службой OData?Или я должен сделать что-то в веб-интерфейсе?Вызов метода resetChanges () бесполезен - после submitChanges нет изменений, которые нужно отменить.

Какие-либо примеры или лучшие практики?

1 Ответ

0 голосов
/ 24 февраля 2019

Если submitChanges не удастся и вы попадете в обработчик ошибок, данные останутся в «отредактированной» форме в передней части (так что вы можете попытаться отправить снова).

Решать, что делать, зависит от вашей логики внешнего интерфейса:

  • по умолчанию - продолжить редактирование и попытаться отправить позже
  • общая альтернатива - resetChanges (там ARE !! изменяется после неудачного submitChanges) и на oModel.refresh после этого, чтобы получить свежую копию из бэкэнда, чтобы пользователь мог начать редактирование снова

И -конечно, вы можете предложить пользователю выбор - сбросить все и получить свежую копию из бэкэнда - или, возможно, кнопку сброса в каждой строке, чтобы иметь возможность сбросить отдельные элементы по отдельности.

...