即使queryParams名称相同,如何合并或添加queryParams

时间:2018-12-26 07:06:05

标签: angular router

首先。网址为http://localhost/kr/shops/search?term=bar

我使用此代码添加了参数

this.router.navigate(['/shops/search'], { queryParams: { brand : someValue }, queryParamsHandling: 'merge'});

执行代码后,URL的结果为http://localhost/kr/shops/search?term=bar&brand=kind

我想像这样无限地添加queryParam。

http://localhost/kr/shops/search?term=bar&brand=kind

http://localhost/kr/shops/search?term=bar&brand=kind&brand=quest

http://localhost/kr/shops/search?term=bar&brand=kind&brand=quest&brand=larlar

但是url的结果总是像这样

http://localhost/kr/shops/search?term=bar&brand=kind

http://localhost/kr/shops/search?term=bar&brand=quest

http://localhost/kr/shops/search?term=bar&brand=larlar

如何无限添加queryParam?

2 个答案:

答案 0 :(得分:0)

也许您需要像这样添加查询参数(使用 URLSearchParams )-

let params = new URLSearchParams();

params.append('brand', 1);
params.append('brand', 'value2');

请参阅。来自https://github.com/angular/angular/issues/11662

备用-您可以配置字符串并添加为查询参数,如下所示-

this.router.navigateByUrl('/?brand=name&brand=bjk')

working example

PS:我不知道这是实现还是不行的有效方法,但是可行。

答案 1 :(得分:0)

如果您使用以下新值设置brand属性:

queryParams: { brand : 'kind' }
queryParams: { brand : 'quest' }
queryParams: { brand : 'larlar' }

尝试一下:

queryParams: { brand : ['kind'] }
queryParams: { brand : ['kind', 'quest'] }
queryParams: { brand : ['kind', 'quest', 'larlar'] }