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

How to merge or add queryParams even if queryParams name is same

起初。 url 是 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?

也许您需要像这样添加查询参数(使用 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:我不知道这是否是有效的实现方式,但有效。

如果您将 brand 属性 设置为这样的新值:

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

试试这个:

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