Я реализовал службу authguard, в которой используется следующий метод void service.
loadOrganizations() {
console.info("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.info("authuard is calling")
return true;
}
Как я могу подписаться на наблюдаемое, в котором мы получаем данные (от authguard) организации в другом ts файле. (В ngOnit ??)
Могу ли я спросить, почему вы используете AuthGuard, он не должен использоваться таким образом
Причина, по которой я использовал вызов службы, заключается в том, чтобы загрузить данные до запуска страницы. И нужно загрузить эти загруженные данные в компонент, который я использую.
вам может потребоваться использовать Resolver вместо Auth Guard для достижения желаемых результатов
мы можем вызвать эту подписку в моей функции ngOnit? каким-либо способом или подсказкой, как это сделать?





вы можете передать необходимые данные в параметр, добавив новый параметр в функцию
loadOrganizations