Emberjs中止过渡并显示模态

时间:2015-07-16 18:15:11

标签: ember.js ember-router

我想在特定路线上中止过渡并显示模态。这就是我的路线代码:

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();

过渡根本不会中止。

我不确定为什么会发生这种情况。有什么指针吗?

1 个答案:

答案 0 :(得分:1)

也许尝试编辑条件以使用firstObject:

if (!this.controller.get('model.firstObject.name')) {