从一个组件导航到另一个组件会在Url上保留参数

问题描述 投票:0回答:3

在我的应用程序中,我有员工详细信息组件,网址看起来像http://localhost:4200/employee/123从这里当我点击按钮返回我用过

this.router.navigate(['/'], { queryParams: { message: this.message }, relativeTo: this.activatedRoute, skipLocationChange: true });

它完美地工作,页面导航到所需的组件(employee-list)。但它将员工ID 123保留在url上,实际上不应该这样,并且应该看起来像http://localhost:4200/employee/。我该怎么做才能正确。

angular angular2-routing
3个回答
0
投票

你可以给this.router.navigate(['../'], {queryParams:'' relativeTo: this.route });this.router.navigate(['employee'], {queryParams: '' });


0
投票

我认为问题是skipLocationChange。 documentation说明如下:

skipLocationChanges:在不将新状态推入历史记录的情况下导航。

这正是您所体验到的:导航工作但您的路线不会改变。请删除skipLocationChange。

看到这个问题here:解决方案是使用skipLocationChanges导航到localhost / canvas而不在url中显示'canvas'。你想要完全相反。所以我认为使用skipLocationChanges:true是你不想使用的东西。


0
投票

好吧,我从以下链接https://angularfirebase.com/lessons/sharing-data-between-angular-components-four-methods/解决了我的问题

它有助于使用服务在页面之间传输数据a)父对子b)子对父c)对父对象

© www.soinside.com 2019 - 2024. All rights reserved.