Показать сообщение отдельно
  #10 (permalink)  
Старый 29.12.2019, 08:57
Интересующийся
Отправить личное сообщение для Vadya Посмотреть профиль Найти все сообщения от Vadya
 
Регистрация: 15.04.2010
Сообщений: 24

У меня еще один вопрос появился. Данные пользователя я получил, а в роутер передать через функцию не могу. Вот код с комментарием, где не получается:

import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from "@angular/router";
import { Observable } from "rxjs";
import { UserService } from './user.service';
import { Injectable } from '@angular/core';


@Injectable()
  export class AuthGuard implements CanActivate {
    
    user: any;

    constructor(private userService: UserService, private router: Router) { }

      public isAuthenticated(): any {    
      this.userService.getUser().subscribe(data => {
          this.user = data;
          if(this.user['login'] !== false) {return true;}
        });
    }

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) : Observable<boolean> | boolean{
            if(this.isAuthenticated()) { // <- Сюда не проходит true
            return true;
            } else {
            this.router.navigate(['/login']);
            }

    }

}
Ответить с цитированием