首页 > 解决方案 > 如何从 authguard.ts 订阅 .ts 文件中的 observable

问题描述

我已经实现了一个 authguard 服务,其中包括以下 void 服务方法。

loadOrganizations() {
    console.log("loading organizattions")
    this.getOrganizations().subscribe(
      (results) => {
        const organizationList = [];
        if (results.organizations) {
          results.organizations.forEach((element) => {
            this.appendOrganization(element, organizationList);
            this.loadChildrenOrganization(element.children, organizationList);
          });
        }
        this.organizations$.next(organizationList);
        this.organizations$.complete();
      },
      (error) => {
        this.organizations$.next([]);
        this.organizations$.complete();
      }
    );
  }

我的身份验证服务如下。

canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
     this.appService.loadOrganizations();
     console.log("authuard is calling")
     return true;
  }

我如何订阅一个 observable,我们在另一个 ts 文件中获取组织的数据(来自 authguard)。(在 ngOnit 内??)

标签: angulartypescriptroutesredux-observableauth-guard

解决方案


推荐阅读