我有一个功能,我用它来循环一些改变我的URL的图片。我使用angular路由获取我的第一个URL,“domain”参数是一个由domain.id和domain.category组成的数组。
<a [routerLink] = "['/image', image.id, domain]">
当我选择第一张图片时,我得到了正确的网址结构。
http://localhost:4200/image/1;id=1;category=testing.
然而,当我调用我的“下一个”功能来循环显示图像时,我得到了这个URL。
"http://localhost:4200/image/2?id=1&category=testing.
基本上我要问的是有可能更换“?”和“&amp;”并将它们变成“;”。
next() {
const next = this.activeId + 1 >= 9 ? 1 : this.activeId + 1;
const extras: NavigationExtras = {
queryParams: {
id: this.domain.id,
category: this.domain.catergory
}
};
this.router.navigate(['/image/' + next], extras);
}
答案 0 :(得分:0)
如果您更喜欢使用queryParams(我推荐),您可以更改使用[routerLink]构建的第一个示例。例如,如果你:
更改强>
<a [routerLink] = "['/image', image.id, domain]">
要强>
<a [routerLink] = "['/image']" [queryParams]="{imageId: image.id, domain: domain.id, category:domain.category}">
然后,您的第一个网址将包含&#34; http://localhost:4200/image/1?id=1&#34;
整个应用中的行为会更加一致。
答案 1 :(得分:0)
使用字符串插值,试试这个
使用navigateByUrl
next() {
const next = this.activeId + 1 >= 9 ? 1 : this.activeId + 1;
this.router.navigateByUrl('/image/' + `${next};id=${this.domain.id};category=${this.domain.catergory}`);
}