我的应用程序中存在路由和CanDeactivateGuard问题。
我有“后退”按钮,应将用户重定向到指定页面。我有CanDeactivateGuard,它应该显示用户确实要离开页面的确认弹出窗口。
步骤:
1)用户单击页面上的“返回”按钮
2)CanDeactivateGuard起作用,并显示确认弹出窗口
3)用户在确认弹出窗口上单击“否”
4)用户在浏览器中单击“返回”按钮
5)没有任何反应(但是我希望再次看到确认弹出窗口)。这里有一些“魔术”:如果用户在浏览器中单击“返回” 3-5次,则会再次显示弹出窗口。
“后退”按钮方法:
onBackClick() {
this.router.navigate(['/some route']);
}
CanDeactivateGuard:
canDeactivate(..some params): boolean | Observable<boolean> | Promise<boolean> {
return confirm('Test message');
}