我现在需要您的帮助!
我有Angular Router,我想导航到另一个URL而不将其添加到浏览器历史记录中,因为后退按钮将使用户一次又一次返回该URL。
this.router.navigateByUrl(`${pathWithoutFragment}#${newFragment}`);
我的代码在这里。 我可以仅使用Angular仪器执行此操作,还是需要使用History API? 谢谢!
答案 0 :(得分:3)
感谢NavigationExtras,您现在可以在replaceUrl: boolean
内使用navigate()
这将替换当前的URL,新的URL将在地址栏中更新:
this.router.navigate([`/somewhere`], { replaceUrl: true });
这样,当您按 back 时,它将不会记住历史记录中的上一页。
答案 1 :(得分:0)
在评论中提到@IngoBürk时,无需使用skiplocationChange即可达到相同的结果
this.router.replaceUrl('path')
skipLocationChange
导航时不会将新状态推入历史记录。
this.router.navigateByUrl([`${pathWithoutFragment}#${newFragment}`], { skipLocationChange: true });
参考:https://angular.io/api/router/NavigationExtras#skipLocationChange