我怎样才能把以前的路线作为Angular中的路径?
我尝试通过this link使用一个解决方案,但它不会在第一页加载时执行。
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
,但是它们不起作用。
我在constructor
和ngOnInit
中调用了这个方法,但是它们都没有在第一次页面加载时执行。
有什么方法可以获得以前的URL吗?
谢谢你。
3条答案
按热度按时间r8uurelv1#
在构造函数中可以使用
以获取先前的路由路径
如果您在构造函数外部使用
this.router.getCurrentNavigation()
,请小心,这将对生命周期来说太晚,并且您将始终具有空值vc9ivgsu2#
Router
类公开了一个getCurrentNavigation()
方法:Router.currentNavigation
的类型为Navigation
:从
Navigation
的定义中可以看出,您可以使用previousNavigation
属性访问前面的导航:因此,您可以使用此属性获取以前的路径。
更新
正如O.MeeKoh所建议的,必须从构造函数调用
getCurrentNavigation()
。dffbzjpn3#
您可以尝试使用navigationStart解决第一次无法获取上一条路线的问题。
你可以参考下面的代码行来获得如何使用它的想法。
如果**pairwise()**方法能解决您的问题,您甚至可以尝试使用它。