修改模型后更新URL

时间:2013-08-17 16:44:19

标签: ember.js ember-data

我有一个这样的路由“loan /:loan_id”,从我重定向到此URL的链接发送未保存的Loan对象作为模型,因此id为null,这导致url为“loans / null” ,然后我保存模型,它从服务器获取一个ID,但我如何更新URL,以便它显示新的ID而不是null?

感谢。

1 个答案:

答案 0 :(得分:1)

我假设你有LoanNewController或类似的东西。然后我进一步假设您在创建后直接尝试转换到新创建的loan对象,这将显示id为null,因为create loan操作是异步的,您必须等待要在转换之前在后端创建贷款,那么为了使其工作,您可以执行以下操作:

App.LoanNewController = Ember.ObjectController.extend({
  saveLoan: function() {
    ...
    this.get('store').commit();
  },
  ...
  transitionAfterSave: function() {
    if(this.get('content.id')) {
      this.transitionToRoute('loan', this.get('content'));
    }
  }.observes(content.id)

添加的观察者将观察content.id以及何时设置(当服务器调用返回时),将调用transitionAfterSave并且转换将使用正确的id传递给它的内容到位。

这个答案主要基于假设,因为你没有透露那么多代码,但你得到了我的观点。

希望它有所帮助。