我会用例子来解释它
{{#link-to item.targetUrl (query-params randomParam=value.id) class="link-wrap"}}abc{{/link-to}}
如果目标网址是 abc.xyz 这会给我 href="#/abc/xyz?randomParam=2"
如何拥有动态参数??? randomParam 不会相同,它可能是 randomParm1 或 randamParm2 所以我想要如下所示的内容:
{{#each selectedTab.content as |item|}}
{{#each item.values as |value|}}
<li {{action 'itemSelect' item.targetUrl item.param }}>{{#link-to item.targetUrl (query-params item.param=value.id) class="link-wrap"}}{{value.desc}}{{/link-to}}</li>
{{/each}}
{{/each}}
这里的item.param是动态的。我并不是真的在寻找解决方法,因为我从模板中的操作中找到了使用 this.transitionTo 的解决方案。我正在寻找如何在 {{link-to}} 帮助程序中解决这个问题。
最佳答案
您可以将参数作为散列而不是位置参数传递(这就是您现在正在做的事情)。
所以你会做这样的事情:
// template.hbs
{{#link-to params=myParams}}
Some text
{{/link-to}}
// component.js
{
myParams: ['your.route.string']
}
<小时/>
现在,如果您有带有动态段或查询参数的更复杂的路线:
动态分割
如果您有动态网段,您的路由器可能如下所示:
// router.js
this.route('users', function(){
this.route('user', {path: '/:username'})
});
然后你会做类似的事情:
// template.hbs
{{#link-to params=myParams}}
Some text
{{/link-to}}
// component.js
{
myParams: ['users.user', 'SOME_USERNAME']
}
查询{arams
如果您有查询参数并且您的 Controller 如下所示:
// controller.js
{
queryParams: ['foo', 'bar']
}
然后你会做类似的事情:
// template.hbs
{{#link-to params=myParams}}
Some text
{{/link-to}}
// component.js
{
myParams: ['some.route.string, {
isQueryParams: true,
values: {
foo: 'some_value',
bar: 'another_value',
}
}]
}
请注意,查询参数对象必须位于数组的最后。因此,如果您也有一个动态段,它看起来像
myParams: ['some.route.string', 'someDynamicID', {queryObject}]
关于javascript - Ember js 链接到动态查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348753/