首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ember link-to中传递动态路由参数

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

Stack Overflow用户
提问于 2020-08-23 00:57:48
回答 1查看 71关注 0票数 0

我的router.js中有两条路由

代码语言:javascript
运行
复制
'user/:id' -> will move to user show page 
'user-answer/:id/answers' -> will move to user answer page 

目前,我使用if条件来更改链接,如以下代码所示。

sidePanel.hbs

代码语言:javascript
运行
复制
{{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组件,如下所示

代码语言:javascript
运行
复制
{{sidePanel routesValue='user-answer' answer=answer users=users}}
{{sidePanel routesValue='user' users=users}}

它工作得很好,但是有没有一种方法可以一次性使用link-to,而不是像传递动态路由参数那样的条件检查?

就像这样

代码语言:javascript
运行
复制
 {{each users as |user|}}
        {{#link-to user.name user.id optionalParam=answer}}
          {{user.name}}
        {{/link-to}}
    {{/each}}
EN

回答 1

Stack Overflow用户

发布于 2020-08-23 20:11:49

<LinkTo>表单接受一个@models参数,该参数接受一个数组:

<LinkTo @route="routename" @models={{this.models}}>

这应该使得在js中计算数组变得很容易:

代码语言:javascript
运行
复制
get models() {
  const result = [this.user.id];
  if(this.answer) {
    result.push(this.answer);
  }
  return result;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63538806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档