Angular 7 Router-导航而不添加历史记录

时间:2019-01-03 09:06:16

标签: javascript angular router history

我现在需要您的帮助!

我有Angular Router,我想导航到另一个URL而不将其添加到浏览器历史记录中,因为后退按钮将使用户一次又一次返回该URL。

this.router.navigateByUrl(`${pathWithoutFragment}#${newFragment}`);

我的代码在这里。 我可以仅使用Angular仪器执行此操作,还是需要使用History API? 谢谢!

2 个答案:

答案 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