路由守卫(route guards)是用于控制是否允许导航进入/离开某个路由的函数。它们在路由激活之前(或在你离开某个路由之前)运行,可用于实现身份认证检查、权限控制以及"未保存更改"提示。
守卫的类型
text
CanActivate → 用户能否进入该路由?(认证/权限检查)
CanActivateChild → 同上,针对子路由
CanDeactivate → 用户能否离开?("你有未保存的更改")
CanMatch → 该路由是否应该被匹配?(功能开关、基于角色)
resolve → 在路由激活之前预先获取数据
一个函数式 CanActivate 守卫(现代 Angular)
ts
{ , } ;
{ inject } ;
: = {
auth = ();
router = ();
(auth.()) {
;
}
router.([]);
};
