我有一个这样的路由“loan /:loan_id”,从我重定向到此URL的链接发送未保存的Loan对象作为模型,因此id为null,这导致url为“loans / null” ,然后我保存模型,它从服务器获取一个ID,但我如何更新URL,以便它显示新的ID而不是null?
感谢。
答案 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传递给它的内容到位。
这个答案主要基于假设,因为你没有透露那么多代码,但你得到了我的观点。
希望它有所帮助。