即使 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')
PS:我不知道这是否是有效的实现方式,但有效。
如果您将 brand
属性 设置为这样的新值:
queryParams: { brand : 'kind' }
queryParams: { brand : 'quest' }
queryParams: { brand : 'larlar' }
试试这个:
queryParams: { brand : ['kind'] }
queryParams: { brand : ['kind', 'quest'] }
queryParams: { brand : ['kind', 'quest', 'larlar'] }
起初。 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')
PS:我不知道这是否是有效的实现方式,但有效。
如果您将 brand
属性 设置为这样的新值:
queryParams: { brand : 'kind' }
queryParams: { brand : 'quest' }
queryParams: { brand : 'larlar' }
试试这个:
queryParams: { brand : ['kind'] }
queryParams: { brand : ['kind', 'quest'] }
queryParams: { brand : ['kind', 'quest', 'larlar'] }