在我的应用程序中,我有员工详细信息组件,网址看起来像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/
。我该怎么做才能正确。
你可以给this.router.navigate(['../'], {queryParams:'' relativeTo: this.route });
或this.router.navigate(['employee'], {queryParams: '' });
我认为问题是skipLocationChange。 documentation说明如下:
skipLocationChanges:在不将新状态推入历史记录的情况下导航。
这正是您所体验到的:导航工作但您的路线不会改变。请删除skipLocationChange。
看到这个问题here:解决方案是使用skipLocationChanges导航到localhost / canvas而不在url中显示'canvas'。你想要完全相反。所以我认为使用skipLocationChanges:true是你不想使用的东西。
好吧,我从以下链接https://angularfirebase.com/lessons/sharing-data-between-angular-components-four-methods/解决了我的问题
它有助于使用服务在页面之间传输数据a)父对子b)子对父c)对父对象