我有以下路线配置:
{ loadChildren: './public#PublicModule', path: '' },
{ loadChildren: './home#HomeModule', path: 'home' },
{ path: '**', redirectTo: '/404' }
在一些模板中(如果重要,我们称之为xxx.component.html)我创建了一个按钮来在我的 404 路由中进行一些测试:
<button type="button" routerLink="unknown">Click here for unknown</button>
有了这个,我在路线中home/xxx
,按下按钮后,它可以工作,我的意思是它进入 404 页面,但是,以下内容返回给我:
NavigationEnd {id: 2, url: "/home/unknown", urlAfterRedirects: "/404"}
但我希望获得真正的先前路线 ( home/xxx
),而不是我在按钮中设置的 URL。有没有办法做到这一点?
PS1:我尝试使用pairwise
,但它只在调用 404 路由 2 次后才有效。
我的 404 组件如下所示:
export class NotFoundErrorComponent {
public previousUrl: string;
constructor(
private router: Router
) {
this.router.events
.filter((event: any) => event instanceof NavigationEnd)
.subscribe((event: any) => {
console.log(event);
// this.previousUrl = event.url;
});
}
...
}