如何从路由器操作转换到非余烬URL?

时间:2013-05-03 16:13:20

标签: ruby-on-rails-3 ember.js ember-router

我正在使用Rails API将标准Rails应用转换为Ember应用。这是一个增量过程,因此短期内用户将在站点的新部分(使用Ember)和旧的遗留视图之间来回切换。

有时,在ember应用中,用户会创建一个新的“计划”模型

计划/ new.hbs

<button {{action createNewPlan}}>Create Plan</button>

成功创建计划后,我想转换到OLD Rails应用程序的计划/展示视图。

我已经在plans_new_router中定义了createNewPlan操作,而不是控制器,因为我知道路由器应该负责跟踪应用程序状态。

plans_new_router.js

App.PlansNewRoute = Ember.Route.extend({
  events: {
    createNewPlan: function() {
      var newPlan = this.controllerFor('plans_new').get('content');
      newPlan.get('transaction').commit();

      // how can I transition to plans/show in the old rails app ????
    }    
  }
}

我想在模型保存后转换到旧rails应用程序上的plans_show视图。我怎样才能做到这一点? transitionTo需要一个余烬路线,我接受它。但我想要做的是使用新的计划ID将brownser重置为相应的rails URL。我猜想转换不是我想要使用的。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

也许是{p> window.location =?你可能想等到响应虽然?如果你这样做,我认为ember-data很快就会变成基于承诺的,或者master可能已经是,不太确定。

如果还没有,您可以addObserver转到id的{​​{1}}属性,当它发生变化时,设置newPlan