Ember.js 如何在路线中的模型挂钩后获取'params.id'?

Ember.js 如何在路线中的模型挂钩后获取'params.id'?,ember.js,ember-router,Ember.js,Ember Router,成功加载页面后,稍后我想使用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.peek

成功加载页面后,稍后我想使用
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?
    },
有人帮我吗?
提前感谢。

这取决于您要从何处呼叫路线转换

如果从路由器调用转换,则只需将参数数据(或仅id)保存到路由器中的局部变量


如果转换是在组件中完成的,则将参数数据(或仅id)作为模型的一部分传递给组件。

由于模型的原因,模板具有id。因此,您可以将其直接传递到操作中

注意:这是直接链接到同一个路由,您需要做一些数学运算才能在GotonNext中获得下一个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>
//route.js
导出默认的Ember.Route.extend(验证{
型号:功能(参数){
if(this.store.hasRecordForId('card-list',params.id)){
返回此.store.peek记录('card-list',params.id;
}
},
行动:{
goToNext(paramId){
this.transitiono('cs2i.balance.balanceReview',paramId);
},
}
});
//模板.hbs