атрибуты отката ember, когда пользователь отменяет действие редактирования - PullRequest
0 голосов
/ 12 июня 2018

У меня есть приложение, в котором пользователь может редактировать продукт и вносить некоторые изменения.Когда пользователь нажимает кнопку редактирования, открывается диалоговое окно.Пользователь может пройти через несколько окон и внести некоторые изменения.После чего пользователь может нажать сохранить или отменить действие редактирования.В случае отмены действия я хочу откатить грязные атрибуты.Я использую приведенный ниже код, чтобы сделать то же самое, но каким-то образом некоторые изменения отменяются, а другие нет.Кто-нибудь может указать, если их проблема?(ниже мой код для справки)

cancelAction() {
 if (this.get('isEditMode') && this.get('model').get('hasDirtyAttributes')) {
   this.get('model').send('becomeInvalid');
   this.get('model').rollBackAttributes();
}

Ответы [ 2 ]

0 голосов
/ 18 июня 2018

Существует хорошее дополнение для управления изменениями в модели ember-data: ember-data-change-tracker .В настоящее время ember-данные не отслеживают изменения в объектах, json, пользовательских типах.Ember-data-change-tracker поддерживает эти типы.

0 голосов
/ 17 июня 2018

Я предлагаю следующий подход:

  1. Делать копию модели каждый раз перед открытием модального
  2. Когда пользователь вносит изменения, работайте с копией
  3. Если пользовательнажимает «сохранить», обновляет исходную модель и сохраняет ее.
  4. Если пользователь нажимает «отменить», никаких действий не требуется.

Это позволяет меньше беспокоиться о возврате атрибутов и обеспечивает лучшего пользователяопыт.

...