成功加载我的页面后,稍后我想重定向到包含params.id
信息的下一页。什么是正确的方法来随时检索params
?
这是我的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?
},
有人帮我吗? 提前谢谢。
答案 0 :(得分: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>
答案 1 :(得分:0)
这取决于你想要从哪里调用路线转换。
如果你从路由器调用转换,那么只需将params数据(或只是id)保存到路由器中的本地变量。
如果在组件中完成转换,则将params数据(或仅id)作为模型的一部分传递给组件。