2015-02-06 2 views
0

Я пытаюсь найти способ не уведомлять шаблон о том, что изменение было сделано.Не уведомлять изменения от маршрута к шаблону в Ember

В моем случае у меня есть модель, которая позволяет мне заполнить форму. Если пользователь не сохранить изменения и переход на другой маршрут, мне нужно откатить модель в состояние по умолчанию:

export default Ember.Route.extend({ 
    actions: { 
     willTransition: function (transition) { 
      this.get('controller.model').rollback(); 
     } 
    } 
} 

Делая это, потому что переход еще не произошло, я могу видеть содержимое формы исчезает в шаблоне, а затем переходит к новому маршруту. В некоторых случаях для пользователя не всегда приятно видеть, что вся информация возвращается в прежнее состояние до того, как переход произошел, и я хотел бы откатиться только тогда, когда представление было удалено.

Возможно, вы не можете уведомить шаблон о том, что маршрут что-то изменил?

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

willTransition: function (transition) { 
    var self = this; 
    transition.then(function() { 
     self.get('controller.model').rollback(); 
    } 
} 

Что может быть лучшим решением для этого?

Спасибо.

ответ

0

Попробуйте использовать функцию Enber.Route # deactivate hook или Ember.run.scheduleLater с соответствующим именем очереди.

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