如果之前调用router.navigate方法,则浏览器中的后退按钮不会调用CanDeactivateGuard

时间:2019-01-11 11:34:12

标签: angular angular4-router

我的应用程序中存在路由和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');
    }

0 个答案:

没有答案