【发布时间】:2016-11-12 20:54:56
【问题描述】:
使用 Angular 2 路由器,我想在请求激活路由时捕获事件。在 Angular 1.x 中,我使用了 $locationChangeSuccess,然后检查用户是否已登录。
我需要对 Angular 2 做类似的事情,所以如果用户尚未通过身份验证,我可以将他们重定向到登录屏幕。
【问题讨论】:
标签: javascript angular angular2-routing
使用 Angular 2 路由器,我想在请求激活路由时捕获事件。在 Angular 1.x 中,我使用了 $locationChangeSuccess,然后检查用户是否已登录。
我需要对 Angular 2 做类似的事情,所以如果用户尚未通过身份验证,我可以将他们重定向到登录屏幕。
【问题讨论】:
标签: javascript angular angular2-routing
看看 CanActivate 和 CanDeactivate。 official angular docs 给出了一个创建管理员防护的示例,我发现它在创建通用登录防护时非常有用。
CanActivate 用于检查路由器是否可以导航到新路由,而 CanDeactivate 用于检查路由器是否可以导航离开当前路由。如果守卫出现在路线上,它将在每次导航发生时与守卫进行检查。
Here 是直接指向示例的链接。
【讨论】: