有时会与queryParam

时间:2019-12-02 23:30:49

标签: angular

我正在使用像这样的路由器链接

[routerLink]="[item.link]"

可行

如果item.link是不带queryparams的字符串。即:/search

它不起作用

如果我有查询参数。即:/search?q=dog

问题

是否存在一种编写routerLink的方法,以便它可以与/search/search?q=dog一起使用?如果没有的话,会有功能吗?

我的尝试(寻找更好的方法。也许所有的html?)

routTo(link) {
    if (link.includes('?')) {
      let tmp = link.split('?');
      this.router.navigate([`/${tmp[0]}`], { queryParams: { [tmp[1].split('=')[0]]: tmp[1].split('=')[1] } });
    } else {
      this.router.navigate([link]);
    }
    setTimeout(() => this.closeDrawer(), 350);
  }

1 个答案:

答案 0 :(得分:0)

要在模板中传递查询参数,您可以执行以下操作:

<a [routerLink]="['../']" [queryParams]="{q: 'dog'}">Somewhere</a>