【问题标题】:Angular 6 - Resolver + Guard + ngrxAngular 6 - Resolver + Guard + ngrx
【发布时间】:2019-01-19 22:33:27
【问题描述】:

我使用 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);
  });
}

但据我所知......守卫在解析器之前运行。那么....如何检查警卫和ngrx的权限?

【问题讨论】:

    标签: angular ngrx ngrx-store


    【解决方案1】:

    在第一次请求时,这永远不会起作用。如果您在解析器中填充,您需要有一条路线来填充商店,然后这个守卫才能工作。

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

    【讨论】:

      猜你喜欢
      • 2019-01-22
      • 1970-01-01
      • 2021-04-15
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      相关资源
      最近更新 更多