使用Angular 2路由器拦截路由请求

时间:2016-07-11 01:30:39

标签: javascript angular angular2-routing

使用Angular 2路由器我想在请求激活路由时捕获事件。在Angular 1.x中,我使用$ locationChangeSuccess,然后检查用户是否已登录。

我需要使用Angular 2做类似的事情,所以如果用户尚未通过身份验证,我可以将用户重定向到登录屏幕。

1 个答案:

答案 0 :(得分:10)

看看CanActivate和CanDeactivate。 official angular docs给出了一个创建管理员防范的示例,我发现在创建一般登录防护时非常有用。

CanActivate用于检查路由器是否可以导航到新路由,而CanDeactivate用于检查路由器是否可以离开当前路由。如果警卫出现在路线上,则每次导航时都会与警卫进行核对。

Here是一个直接链接到示例的链接。