2013-07-16 3 views
4

Мое приложение имеет новые/редактируемые формы для набора объектов, считанных с бэкэнда.Данные Ember - откат при переходе от формы

Когда я открываю такую ​​форму и заполняю/редактирую некоторые поля, а затем удаляюсь, записи отображаются в списках сущностей, хотя я не совершал эти изменения. Перезагрузка приложения (которое перезагружает данные из бэкэнд) устраняет проблему, но не является вариантом.

Я попытался выполнить некоторые откаты транзакций в форме viewDestroyElement формы, но это кажется принципиально неправильным, так как оно вызвано даже после успешной отправки формы (и фактически сбой с Attempted to handle event rollback on X while in state rootState.loaded.updated.inFlight).

Как бы я проигнорировал все непредвиденные изменения формы (аналогично нажатию кнопки «Отмена», которая выполняет откат транзакции), для любого варианта использования, который включает в себя переход от форм?

Использование Ember rc5, Ember Data 0.13.

ответ

4

При выходе из маршрута формы проверьте состояние записи. Если его (isNew ИЛИ isDirty) и его НЕ isSaving, Откат:

App.FormRoute = Ember.Route.extend({ 
    deactivate: function() { 
    var model = this.controllerFor('form'); 
    if ((model.get('isNew') || model.get('isDirty')) && (!model.get('isSaving'))) { 
     model.rollback(); 
    } 
    } 
}); 
+0

Я уголек-новичок, но и в новых версиях уголька вы должны использовать 'model.rollback();' 'не модель. get ('transaction'). rollback(); '(' model.get ('transaction') 'возвращает _null_) –

+0

Мы также можем использовать' this.controller.content'. – Autodidact

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