0
我有一個像這樣的「loans /:loan_id」的路由,我從一個鏈接重定向到這個URL併發送一個未保存的Loan對象作爲模型,所以id爲null,這會導致url是「loans/null」,但是我保存模型並從服務器獲取ID,但是如何更新URL以便顯示新ID而不是null?修改模型後的更新URL
謝謝。
我有一個像這樣的「loans /:loan_id」的路由,我從一個鏈接重定向到這個URL併發送一個未保存的Loan對象作爲模型,所以id爲null,這會導致url是「loans/null」,但是我保存模型並從服務器獲取ID,但是如何更新URL以便顯示新ID而不是null?修改模型後的更新URL
謝謝。
我假設你有一個LoanNewController
或類似的東西。然後我進一步假設你正試圖在創建它之後直接轉換到新創建的loan
對象,這將顯示id爲null,因爲創建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的內容。
這個答案主要基於假設,因爲你沒有透露太多的代碼,但你明白了我的觀點。
希望它有幫助。
謝謝!但是這會在瀏覽器歷史記錄中創建一個條目嗎?我之前嘗試過使用loan.one('didCreate')事件的transitionTo,但是當我在瀏覽器中按下時會將我返回到空URL,導致應用程序中出現一些意外行爲。 – ryudice
您可以使用'replaceWith'而不是'transitionTo'來避免這個問題... – vitch