Angular 6 - Resolver + Guard + ngrx

Angular 6 - Resolver + Guard + ngrx

我使用 ngrx,我有一家商店,里面有学院列表 ['academy1','academy2']

我用解析器填充商店。

现在我需要

canActivate(route: ActivatedRouteSnapshot, state_: RouterStateSnapshot): any {

  return this.store.pipe(select(state => state.user)).subscribe((user) => {
     return user.academies.includes(route.params.domain);
  });
}

但据我所知...在解析器之前保护 运行。那么....我如何使用 guards 和 ngrx 检查权限?

对于第一个请求,这永远行不通。如果你在解析器中填充,你需要有一条路线来填充商店,然后这个守卫才能工作。

如果需要此数据才能确定您是否可以激活任何路线,那么您需要在(例如)登录操作的结果上填充商店,然后再尝试导航。或者,有一个没有此守卫但填充商店的默认路由,然后导航(如果您没有登录操作)。