如何在默认情况下在所有路由上以角度5保持查询参数?

ger*_*678 8 typescript angular-routing angular

背景:

用户使用参数调用应用程序的URL并使用我的应用程序.在不同路由之间切换时,url参数应该在浏览器的地址栏中保持可见.


我必须在我的应用程序的每个路由上保留查询参数.这意味着如果我有网址

www.example.com/app/test?id=326748798342&state=1

并调用链接[routerLink]="['/login']"我必须得到这个网址:

www.example.com/app/login?id=326748798342&state=1.

默认情况下,我获得没有参数的登录路由.我发现了一个可以设置的解决方案queryParamsHandling='merge'.但这是一个非常糟糕的解决方案,因为这意味着要更改模板和所有navigate()调用中的所有链接.

在默认情况下有没有更简洁的方法来解决这个问题?在应用程序或其他东西的路由数组中设置queryParamsHandling的东西?

Max*_*kyi 8

目前无法在全球范围内进行设置.使用queryParamsHandling似乎是唯一的选择:

<a [routerLink]="['/login']" queryParamsHandling="preserve"></a>
Run Code Online (Sandbox Code Playgroud)

或者使用路由器时:

router.navigate('/login', { queryParamsHandling: "preserve" })
Run Code Online (Sandbox Code Playgroud)

另一个可能的选择queryParamsHandlingmerge.