2017-09-05 78 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)作为模型的一部分传递给组件。