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

时间:2017-12-27 16:21:53

标签: angular typescript angular-routing

背景

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

我必须在我的应用的每条路线上保留查询参数。这意味着如果我有网址

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

并拨打[routerLink]="['/login']"的链接我必须得到此网址:

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

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

默认情况下是否有更简洁的方法来解决此问题?在应用程序或其他东西的routes数组中设置queryParamsHandling的东西?

1 个答案:

答案 0 :(得分:5)

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

<a [routerLink]="['/login']" queryParamsHandling="preserve"></a>

或使用路由器时:

router.navigate('/login', { queryParamsHandling: "preserve" })

queryParamsHandling的另一个可能选项是merge