>我有一个底部菜单,其中包含几个按钮,每个按钮都使用navigate
链接到一个页面:
this.navigate(TimelinePath, 'back');
然后我有一个覆盖层,用于检查要测试的路径是否应该关闭:
this.routerSubscription = this.router.events.subscribe((val) => {
if (val instanceof NavigationEnd) {
this.closeModal();
}
});
这有效,但是存在一个问题:如果我已经站在我尝试重定向到的页面上,则不会触发此事件。
所以我的问题是:如何检查应该重定向到的页面是否已打开?
键是自 Angular 5 以来RouterModule
导入中存在的onSameUrlNavigation
选项。
RouterModule.forRoot(routes, {
onSameUrlNavigation: 'reload'
})
这将触发NavigationEnd
并关闭您的模式,即使导航到同一 URL。检查这个 StackBlitz 看看它的实际效果。