假设我有一条有守卫的路线AdminGuard
,只有当我是管理员时才允许我进入。
但是当我在那个页面上点击Logout
状态通过 Observables 传播到所有应用程序中,但我仍然处于一条我不应该处于的路线中,因为我已经注销了。
如何“重新激活”当前的路线守卫?
单击注销时可以导航到同一页面。
(像这样的一些代码应该可以工作,但这可能不是最好的方法。)
`
let currentUrl:string = this.router.url;
this.router.navigateByUrl('/somewhere-else').then(() => {
this.router.navigate([currentUrl]);
});
`
更好的方法:
最好用onSameUrlNavigation:'reload'
关于内置 Angular 路由器配置。并在你的路线上添加runGuardsAndResolvers: 'always'
然后您可以简单地导航到相同的网址。
有关更多信息,我鼓励您阅读this https://medium.com/engineering-on-the-incline/reloading-current-route-on-click-angular-5-1a1bfc740ab2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)