在 angular 2 中如何保留查询参数并向路由添加额外的查询参数 [英] In angular 2 how to preserve query params and add additional query params to route

查看:24
本文介绍了在 angular 2 中如何保留查询参数并向路由添加额外的查询参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如,我在路线 /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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆