【发布时间】:2018-06-08 06:56:49
【问题描述】:
背景:
用户使用参数调用应用程序的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 之类的东西吗?
【问题讨论】:
-
您是否将
id和state查询参数传递给 api 或其他组件? -
在本例中,“test”和“login”都是应该能够读取查询参数的组件。我没有将参数传递给 api。
-
我不确定我是否真的了解问题所在。但是,我认为您可以将
Id和state放入localstorage、Service或ngrx Store并检索它以在您的组件中使用,甚至无需添加到 Url。 -
谢谢,但您的建议并不能解决我的问题。用户使用参数调用我的应用程序的 url 并使用我的应用程序。在不同路由之间切换时,url 参数应该在浏览器的地址栏中保持可见。
标签: angular typescript angular-routing