0

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

谢谢。

4

1 回答 1

1

我假设你有一个LoanNewController或类似的东西。然后我进一步假设您loan在创建它之后直接尝试转换到新创建的对象,这将显示一个 null 的 ID,因为创建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 将内容传递给它。

这个答案主要基于假设,因为您没有透露那么多代码,但我猜您明白了。

希望能帮助到你。

于 2013-08-17T17:13:05.177 回答