如何重新加载当前的路线防护?

Hum*_*erd 6 angular

假设我有一条有后卫的路线,AdminGuard只有当我是管理员时我才能进入.

但是当我在那个页面上并且我点击Logout状态通过Observables在所有应用程序中传播时,但我仍然在一条路线中,我不应该进入,因为我已经退出了.

如何"重新激活"临时护卫队?

Y. *_*ion 1

单击注销时可以导航到同一页面。

(像这样的一些代码应该可以工作,但这可能不是最好的方法。)

`

let currentUrl:string = this.router.url;
this.router.navigateByUrl('/somewhere-else').then(() => {
    this.router.navigate([currentUrl]);
});
Run Code Online (Sandbox Code Playgroud)

`

更好的方法:

最好onSameUrlNavigation:'reload'在内置 Angular Router 配置上使用。然后在您的路线上添加runGuardsAndResolvers: 'always' 然后您可以简单地导航到相同的网址。

有关更多信息,我鼓励您阅读此内容