Одним из подходов может быть добавление защиты маршрута, которая проверяет некоторую глобальную переменную.
Например; Сначала создайте сервис:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class MyRedirectCheckService {
redirectToHomePage = true;
}
Создайте охрану маршрута, который использует сервис, что-то вроде этого:
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
@Injectable({
providedIn: 'root',
})
export class checkFirstLoadGuard implements CanActivate {
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot,
myRedirectCheckService: MyRedirectCheckService ): boolean {
return myRedirectCheckService.redirectToHomePage;
}
}
Затем добавьте canActivate route guard к вашему маршрутизатору:
const routes: Routes = [
{ path: 'main', component: MainComponent },
{ path: 'child', component: ChildComponent, canActivate: [CheckFirstLoadGuard]},
{ path: '**', component: AdminDashboardComponent }
]
];
В конструкторе основного компонента не забудьте переключить значение:
constructor(myRedirectCheckService: MyRedirectCheckService) {
myRedirectCheckService.redirectToHomePage = false;
}
Это только один подход, и код не тестируется в контексте реального приложения.