angular - 默认情况下,如何在所有路由上保持 angular 5 中的查询参数?

标签 angular typescript angular-routing

背景:

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


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

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

并使用 [routerLink]="['/login']" 调用一个链接,我必须得到这个 url:

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

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

是否有更简洁的方法来默认解决此问题?在应用程序的路由数组中设置 queryParamsHandling 之类的东西还是其他东西?

最佳答案

目前无法全局设置。使用 queryParamsHandling 似乎是唯一的选择:

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

或者使用路由器时:

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

queryParamsHandling 的另一个可能选项是merge

关于angular - 默认情况下,如何在所有路由上保持 angular 5 中的查询参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47995412/

相关文章:

javascript - Angular 2关注点击/事件后的第一个无效输入

angular - 如何在 angular cli webpack 中使用提前编译器

Angular Karma Jasmine 测试 "Can' t 绑定(bind)到 'ngIf',因为它不是已知属性”

angular - 隐藏选项卡 - 在特定选项卡上突出显示 Ionic 3

angularjs - Angular 更新和清除工厂变量

javascript - AWS API 网关的 HTTP 客户端请求

angular - 预计会出现 typescript 错误 ';'。 'EventNameString' 仅指一种类型,但在此处用作值

visual-studio - 构建时出现 Visual Studio 2015 CTP TypeScript 错误

angular - 如何从 Angular 5 中的 URL 获取查询参数?

javascript - 查看未在 Asp.net Angular 应用程序中加载。使用 Asp.net mvc 进行 Angular 路由