如何解决如何在ember链接中传递动态路由参数
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}}
它工作正常,但是有一种方法可以一次使用链接到,而不是像传递动态路由参数一样进行条件检查吗?
类似
{{each users as |user|}}
{{#link-to user.name user.id optionalParam=answer}}
{{user.name}}
{{/link-to}}
{{/each}}
解决方法
<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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。