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

时间:2017-10-02 08:03:17

标签: angular

我们说我的路线有一个警卫AdminGuard,只有当我是管理员时我才能进入。

但当我在该页面上点击Logout时,状态会通过Observables在所有应用程序中传播,但我仍然处于一条路线中,我不应该这样做,因为我已经退出了。

如何重新激活" curent route guard?

1 个答案:

答案 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