Angular 角度6-分解器+;防护罩+;ngrx

Angular 角度6-分解器+;防护罩+;ngrx,angular,ngrx,ngrx-store,Angular,Ngrx,Ngrx Store,我使用ngrx,我有一个商店,里面有一个学院列表['academy1','academy2'] 我使用解析程序填充存储 现在我需要 canActivate(route: ActivatedRouteSnapshot, state_: RouterStateSnapshot): any { return this.store.pipe(select(state => state.user)).subscribe((user) => { return user.acade

我使用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检查权限?

在第一次请求时,这永远不会起作用。如果在解析程序中填充,则需要有一个将填充存储的路由,然后此防护才能工作

如果需要此数据来确定是否可以激活任何路由,则在尝试导航之前,您需要在(例如)登录操作的结果上填充存储。或者,创建一个默认路由,该路由没有此保护,但填充存储,然后导航(如果没有登录操作)