2017-09-05 42 views
0

我的頁面加載成功後,稍後我想重定向到下一頁params.id信息。什麼是正確的方式來隨時檢索params如何在路由中的模型掛鉤後獲取`params.id`?

這裏是我的router.js:

export default Ember.Route.extend(Validation, { 

    model: function(params) { //where to store? 

    if(this.store.hasRecordForId('card-list', params.id)){ 
     return this.store.peekRecord('card-list', params.id); 
     } 

    }, 


    actions:{ 

    goToNext(){ 
     return; 
     this.transitionTo('cs2i.balance.balanceReview', 12); //how to get id? 
    }, 

任何一個可以幫助我在這裏? 在此先感謝。

回答

1

您的模板因爲型號而有id。所以你可以直接將它傳遞給動作。

注意:這是直接鏈接到相同的路線,你需要做一些數學來獲得goToNext中的下一個ID。但是在記錄被刪除而另一個創建的情況下,ID不會足夠一致,無法做一個簡單的+1。具有下一個記錄的實際ID會更好。這可能與API的關係有關。然後你可以做一些像model.previousId而不是model.id。

// route.js 
export default Ember.Route.extend(Validation, { 
    model: function(params) { 
    if(this.store.hasRecordForId('card-list', params.id)){ 
     return this.store.peekRecord('card-list', params.id ; 
    } 
    }, 
    actions:{ 
    goToNext(paramId) { 
     this.transitionTo('cs2i.balance.balanceReview', paramId); 
    }, 
    } 
}); 

// template.hbs 
<button {{action 'goToNext' model.id}}></button> 
0

它取決於你想從哪裏調用路由轉換。

如果您從路由器調用過渡,那麼只需將params數據(或者僅僅是id)保存到路由器中的局部變量即可。

如果在組件中完成轉換,則將params數據(或只是id)作爲模型的一部分傳遞給組件。

相關問題