导航到被 canDeactivate 守卫取消的同一路线失败

Navigating to the same route cancelled by the canDeactivate guard is failing

如果我尝试导航到一条被 canDeactivate 警卫取消的路线,那不会发生。他们有解决此问题的方法吗?

我有一个带有表单的组件,如果它们有任何未保存的更改,并且如果我们尝试导航离开,我们将在 canDeactivate 守卫中显示一个 bootstrap 确认弹出窗口。如果我们 select OK,那么我们将再次导航到同一条路线,但这并没有发生。他们有解决此问题的方法吗?

我不确定你是如何尝试的,但请检查一下:

canDeactivate() {
  return dialogService.confirm('Discard unsaved changes?');
}

这应该适合你。看看这个 Doc

我自己花了 3 个小时试图解决这个问题。 这是@angular/router 3.2 版的错误。

我通过降级到版本 3.1 并重新安装软件包来修复它。

希望对您有所帮助。