import { AdminAuthService } from './admin-auth.service';
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router, Route, ActivatedRoute } from '@angular/router';
import { Observable } from 'rxjs';
@Injectable()
export class AdminAuthGuard implements CanActivate {
constructor(private _authService: AdminAuthService, private _router: Router, private acRoute: ActivatedRoute) {
}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return new Promise((resolve, reject) => {
this._authService.checkValidUser().then((resp) => {
//let url = state.url.substr(0, state.url.lastIndexOf("/"));
!resp && this._router.navigate(['../adminlogin'], {relativeTo: this.acRoute});
//!resp && this._router.navigate([url, "adminlogin"]);
resolve(resp);
});
})
}
}
Я получаю следующую ошибку. ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: невозможно сопоставить ни один маршрут.Сегмент URL: ошибка «adminlogin»: невозможно сопоставить ни один маршрут.Сегмент URL: 'adminlogin'
Код маршрутизации выглядит как
{
path: "admin", component: AdminComponent,
children: [
{ path: '', redirectTo: 'adminlogin', pathMatch: "full" },
{ path: 'adminlogin', component: LoginComponent },
{ path: 'list', component: ListComponent, canActivate: [AdminAuthGuard] }
]
}
Может кто-нибудь помочь мне в этом?