All checks were successful
Angular Build & Deploy / deploy (push) Successful in 46s
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';
|
|
|
|
export class CustomRouteReuseStrategy implements RouteReuseStrategy {
|
|
private handlers: { [key: string]: DetachedRouteHandle } = {};
|
|
|
|
// Soll die Route gespeichert werden?
|
|
shouldDetach(route: ActivatedRouteSnapshot): boolean {
|
|
// Hier kannst du filtern, welche Route gespeichert werden soll (z.B. 'produktbaum')
|
|
return route.routeConfig?.path === 'produktbaum';
|
|
}
|
|
|
|
// Speichert die Komponente
|
|
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {
|
|
this.handlers[route.routeConfig?.path!] = handle;
|
|
}
|
|
|
|
// Soll eine gespeicherte Route wiederhergestellt werden?
|
|
shouldAttach(route: ActivatedRouteSnapshot): boolean {
|
|
return !!this.handlers[route.routeConfig?.path!];
|
|
}
|
|
|
|
// Holt die gespeicherte Komponente zurück
|
|
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {
|
|
return this.handlers[route.routeConfig?.path!];
|
|
}
|
|
|
|
// Soll die Route beim Navigieren wiederverwendet werden?
|
|
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
|
|
return future.routeConfig === curr.routeConfig;
|
|
}
|
|
}
|