Это мой компонент Login
login-component.ts
ngOnInit() {
this.loginEventsData = this.route.snapshot.data['loginEventsData'];
this.isAppActive = this.loginEventsData["A"][0]["IsActive"];
if (!this.isAppActive) { // I'm getting true here
this.router.navigate(["/maintenance"]);
}
login.resolver.ts
import { Injectable } from "@angular/core";
import { Router, Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from "@angular/router";
import { LoginService } from "./login.service";
import { Observable, forkJoin } from "rxjs";
import { map, mergeMap } from "rxjs/operators";
import { DashboardService } from "../dashboard/dashboard.service";
@Injectable()
export class LoginResolver implements Resolve<any> {
constructor(private loginService: IportLoginService, private dashboardService: DashboardService, private router: Router, ) {
}
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<any> {
let A$ = this.loginService.getApplicationCentre();
let B$ = this.loginService.getLoginBackgroundImg();
let CD$ = this.loginService.getLoginId()
.pipe(
mergeMap(b => this.loginService.getUserDetails(b)
.pipe(map(c => [b, c])))
);
return forkJoin(A$, B$, CD$).pipe(map(([A, B, [C, D]]) => ({ A, B, C, D})));
}
}
app-routing.module.ts
const routes: Routes = [
{
path: 'login', component: IportLoginComponent, resolve: { loginEventsData: LoginResolver }
},
{ path: 'termsAndConditions', component: TermsAndConditionsComponent },
{ path: 'maintenance', component: MaintenanceComponent,pathMatch: 'full'}
]
@NgModule({
imports: [RouterModule.forRoot(routes, { useHash: true, enableTracing: true})],
exports: [RouterModule],
providers: [
LoginResolver
]
})
Это результат, который я получаю, когда отслеживаю
Router Event: NavigationCancel
platform-browser.js:211 NavigationCancel(id: 2, url: '/maintenance')
platform-browser.js:211 NavigationCancel {id: 2, url: "/maintenance", reason: "Navigation ID 2 is not equal to the current navigation id 3"}
Естьнет охраны для этого компонента, и я получаю navigationCancel . Невозможно перенаправить на компонент обслуживания В чем может быть причина?
Когда я отслеживаю, я получаю Идентификатор навигации 2 не равен текущему идентификатору навигации 3 .Но в данный момент у меня не работает какая-либо другая навигация.
Можно ли отменить все остальное и перейти к компоненту обслуживания?
Любая помощь будет признательна!