在 angular 2 中如何保留查询参数并向路由添加额外的查询参数 [英] In angular 2 how to preserve query params and add additional query params to route
问题描述
例如,我在路线 /cars?type=coupe
上,我想导航到具有附加查询参数的同一端点(但保留现有参数).我正在尝试这样的事情
For example I am on route /cars?type=coupe
and I want to navigate to the same endpoint with additional query params (but keeping existing one). I am trying something like this
<a [routerLink]="['/cars']" [queryParams]="{model: 'renault'}" preserveQueryParams>Click</a>
保留初始查询参数 (type=cars) 但忽略添加的 (model=renault).这是预期的/正确的行为还是某种错误?看起来preserveQueryParams 优先于queryParams?有没有其他平滑的解决方案?
The initial query params are preserved (type=cars) but added ones (model=renault) are ignored. Is this expected/correct behavior or is some kind of bug? Looks like preserveQueryParams has priority over queryParams? Is there any other smooth solution?
推荐答案
在 Angular 4+ 中,preserveQueryParams
已被弃用,取而代之的是 queryParamsHandling
.选项为 'merge'
或 'preserve'
.
In Angular 4+, preserveQueryParams
have been deprecated in favor of queryParamsHandling
. The options are either 'merge'
or 'preserve'
.
代码示例(用于NavigationExtras
):
this.router.navigate(['somewhere'], { queryParamsHandling: "preserve" });
模板内示例:
<a [routerLink]="['somewhere']" queryParamsHandling="merge">
这篇关于在 angular 2 中如何保留查询参数并向路由添加额外的查询参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!