gpt4 book ai didi

angular - 如何在 Angular2 中追加/更新查询参数

转载 作者:太空狗 更新时间:2023-10-29 17:28:58 25 4
gpt4 key购买 nike

我在我的应用程序中使用查询参数,我想在导航和更新设置时保留/更新这些参数。通过执行以下操作,我可以毫无问题地添加参数。

onNavigate() {
this.router.navigate(['reports'], {queryParams: {'report': this.chart}, preserveQueryParams:true});
}

但是我希望能够更改报告参数并将新参数附加到整个应用程序的 url。

使用 preserveQueryParams: true 使我的参数只读。我希望能够更新当前参数并添加新参数而不丢失任何内容,除非我清除它们。

如何在不丢失当前设置的参数的情况下执行此操作?

最佳答案

我想 preserveQueryParams 并不代表应用程序附加/更新 queryParams

您必须编写逻辑来获取现有查询参数并根据您的要求更新它,然后在导航时传递。

   this.route.queryParams.subscribe(qparams => {
this.currentQueryParams= qparams;
});

updatedqueryParams = // use this.currentQueryParams update it to append\update new stuff
let navigationExtras: NavigationExtras = {
queryParams: updatedqueryParams
};

// Navigate to the login page with extras
this.router.navigate(['<some path>'], navigationExtras);

preserveQueryParams 的目的是传递您要路由到的当前全局查询参数,

所以如果当前 URL 是

 dashboard?debug=true&somevar=1

然后你写下类似下面的内容,

  this.router.navigate(['admin'],  {
preserveQueryParams: true
}
);

新路由将保留查询参数。

admin?debug=true&somevar=1

希望这对您有所帮助!

关于angular - 如何在 Angular2 中追加/更新查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40288521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com