42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';
|
|
|
|
/**
|
|
* Estrategia personalizada que evita la reutilización de rutas
|
|
* para asegurar que los componentes se vuelvan a crear en cada navegación
|
|
*/
|
|
export class CustomRouteReuseStrategy implements RouteReuseStrategy {
|
|
/**
|
|
* No almacenar ninguna ruta al desactivarse
|
|
*/
|
|
shouldDetach(route: ActivatedRouteSnapshot): boolean {
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* No hay rutas almacenadas, así que esto nunca se llama
|
|
*/
|
|
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void {}
|
|
|
|
/**
|
|
* No recuperar rutas almacenadas
|
|
*/
|
|
shouldAttach(route: ActivatedRouteSnapshot): boolean {
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* No hay rutas almacenadas, así que esto nunca se llama
|
|
*/
|
|
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* No reutilizar rutas para forzar la recreación de componentes
|
|
*/
|
|
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
|
|
// Solo reutilizar si es la misma ruta exactamente (evita problemas con rutas anidadas)
|
|
return future.routeConfig === curr.routeConfig &&
|
|
JSON.stringify(future.params) === JSON.stringify(curr.params);
|
|
}
|
|
} |