我们说我的路线有一个警卫AdminGuard
,只有当我是管理员时我才能进入。
但当我在该页面上点击Logout
时,状态会通过Observables在所有应用程序中传播,但我仍然处于一条路线中,我不应该这样做,因为我已经退出了。
如何重新激活" curent route guard?
答案 0 :(得分:0)
单击退出时,您可以导航到同一页面。
(像这样的一些代码应该可行,但它可能不是最好的方法。)
`
let currentUrl:string = this.router.url;
this.router.navigateByUrl('/somewhere-else').then(() => {
this.router.navigate([currentUrl]);
});
`
更好的方法:
最好在内置Angular Router配置中使用onSameUrlNavigation:'reload'
。在您的路线上添加runGuardsAndResolvers: 'always'
然后,您只需导航到同一个网址。
有关详细信息,建议您阅读this