网址修改:Angular

时间:2018-04-07 17:50:45

标签: javascript angular url

我有一个功能,我用它来循环一些改变我的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);
}

2 个答案:

答案 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}`);
}