Angular 4 - 如何在按下后退按钮时路由到特定组件?

Angular 4 - How to route to a particular component when back button is pressed?

我想在浏览器中单击 后退 按钮时路由到特定路径。

我正在尝试以下代码片段。但它只是暂时将 URL 更改为所需的,然后路由到先前的实际 URL.

constructor(location: PlatformLocation, private router: Router) {
    location.onPopState(() => {
        router.navigate(['/home']);
    });
}

我建议在顶层放置一个监听器,例如:

  @HostListener('window:popstate', ['$event'])

并做

  router.navigate(['/home']);

里面。

你可以使用 routerLink

https://angular.io/api/router/RouterLink

<a [routerLink]="['/main']">
 <b> < BACK </b>
</a>

我使用 JavaScript 以不同的方式找到了解决方案。

假设我目前在“/menu”中,我想在按下后退按钮时导航到“/home”。检查以下代码片段。

ngOnInit() {
window.history.pushState( {} , 'Home', '/home' );
window.history.pushState( {} , 'Menu', '/menu' ); }

这里我在ngOnInit()里面推window.history中的两个状态。首先是 URL (/home) 我想访问后退键,然后是当前的 URL (/menu)

它运行良好,我已经实现了我想要的。