ember.js 如何在ember link-to中传递动态路由参数

e5nqia27  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(170)

我的router.js中有两个路由

'user/:id' -> will move to user show page 
'user-answer/:id/answers' -> will move to user answer page

目前我使用if条件来更改链接,如下面的代码所示,
sidePanel.hbs

{{each users as |user|}}
{{#if (eq routesValue user-answer)}}
    {{#link-to user.name user.id answer}}
      {{user.name}}
    {{/link-to}}
{{else}}  
    {{#link-to user.name user.id}}
      {{user.name}}
    {{/link-to}}
{{/if}}
{{/each}}

我在其他两个组件中使用sidePanel组件作为

{{sidePanel routesValue='user-answer' answer=answer users=users}}
{{sidePanel routesValue='user' users=users}}

它工作正常,但是否有办法一次性使用link-to,而不是像传递动态路由参数那样使用条件检查?
类似于

{{each users as |user|}}
        {{#link-to user.name user.id optionalParam=answer}}
          {{user.name}}
        {{/link-to}}
    {{/each}}
u5rb5r59

u5rb5r591#

<LinkTo>形式采用@models参数,该参数采用数组:
<LinkTo @route="routename" @models={{this.models}}>
这应该使得在js:

get models() {
  const result = [this.user.id];
  if(this.answer) {
    result.push(this.answer);
  }
  return result;
}

相关问题