Angular приложение не отображает ничего с распознавателем - PullRequest
0 голосов
/ 28 марта 2020

У меня есть распознаватель - разрешение моего состояния можно наблюдать, но мое веб-приложение ничего не отображает и не содержит ошибок - есть идеи? если я передаю в карту значение моего состояния авторизации, наблюдаемого в моем резольвере, то будет выброшено значение.

решатель аутентификации

import { AuthenticationService } from '../services/authentication.service';
import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

@Injectable({ providedIn: 'root' })
export class AuthResolver implements Resolve<Observable<any>> {
    constructor(private authservice: AuthenticationService) { }

    resolve(): Observable<any> {
        return this.authservice.getAuthState();
    }
}

Служба аутентификации

 public getAuthState() {
        return this.authenticationState.asObservable();
    }

В мои app-rout.ts

export const ROUTES: Route[] = [
    {
        path: '', component: BaseComponent,resolve: { authState: AuthResolver},  children: [
            { path: '', component: HomeComponent, pathMatch: 'full' },
            { path: 'account/create', component: RegisterComponent },
            { path: 'account/login', component: LoginComponent },
        ]
    },

    { path: '404', component: PagenotfoundComponent },
    { path: '**', redirectTo: "/404" }
]

1 Ответ

0 голосов
/ 28 марта 2020

Наблюдаемое, возвращаемое распознавателем, должно быть завершено. Только после этого страница будет загружена. Простой способ добиться этого - использовать take(1), если вы хотите, чтобы новейшее значение вашего состояния наблюдалось.

resolve(): Observable<any> {
    return this.authservice.getAuthState().pipe(
        take(1)
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...