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