Emberjs прерывает переход и показывает модальное окно

Я хочу прервать переход по определенному маршруту и ​​показать модальное окно. Вот как выглядит мой код маршрута:

export default Ember.Route.extend({
  model: {/* some code here */},
  actions: {
    willTransition: function(transition) {
      if (!this.controller.get('model.name')) {
        console.log('aborting transition');
        transition.abort();
        this.send('showModal', {
          template: 'campaign/campaign-name-modal',
          controller: this.controller,
          model: this.controller.get('model')
        });
      }
      else {
        // Bubble the `willTransition` action so that
        // parent routes can decide whether or not to abort.
        return true;
      }
    }
  }
});

а затем в моем application.hbs у меня есть:

{{outlet 'modal'}}

Я наблюдаю, что переход прерывается, но мой modal не появляется. Когда я переключаю порядок на что-то вроде:

    this.send('showModal', {
      template: 'campaign/campaign-name-modal',
      controller: this.controller,
      model: this.controller.get('model')
    });
    console.log('aborting transition');
    transition.abort();

переход вообще не прерывается.

Я не совсем уверен, почему это может происходить. Любые указатели?


person Rajat    schedule 16.07.2015    source источник
comment
Во втором коде вы получаете журнал консоли «отмена перехода»?   -  person acid_srvnn    schedule 08.09.2015


Ответы (1)


Возможно, попробуйте отредактировать условное выражение, чтобы использовать firstObject:

if (!this.controller.get('model.firstObject.name')) {
person Gary Wilson    schedule 17.07.2015
comment
Условное не является проблемой. Выполнение идет внутри блока if, а затем ведет себя неправильно. - person Rajat; 19.07.2015
comment
Я предполагаю, что вы получаете консольное сообщение «отмена перехода» без прерывания перехода. Какую версию Ember вы используете? - person Gary Wilson; 20.07.2015