我需要你的帮助,以获得以前的路线路径。我正在使用下面的链接来获得,但它不会在第一时间触发...
How to determine previous page URL in Angular?
constructor(router: Router) {
router.events
.pipe(filter(event => event instanceof NavigationEnd))
.subscribe((event: NavigationEnd) => {
console.log('prev:', event.previousUrl);
this.previousUrl = event.url;
});
}
我同时使用了RoutesRecognized和NavigationEnd,但没有得到它。
我在构造函数和ngOnInit中调用了此方法,但每次都没有在第一次触发....
有没有什么办法,我可以
谢谢你...
3条答案
按热度按时间5fjcxozz1#
在构造函数中可以使用
以获取先前的路由路径
如果您在构造函数外部使用
this.router.getCurrentNavigation()
,请小心,这将对生命周期来说太晚,并且您将始终具有空值hgqdbh6s2#
Router
类公开了一个getCurrentNavigation()
方法:Router.currentNavigation
的类型为Navigation
:从
Navigation
的定义中可以看出,您可以使用previousNavigation
属性访问前面的导航:因此,您可以使用此属性获取以前的路径。
更新
正如O.MeeKoh所建议的,必须从构造函数调用
getCurrentNavigation()
。acruukt93#
您可以尝试使用navigationStart解决第一次无法获取上一条路线的问题。
你可以参考下面的代码行来获得如何使用它的想法。
如果**pairwise()**方法能解决您的问题,您甚至可以尝试使用它。