Saltar al contenido

¿Cómo obtener elegantemente la URL completa de ActivatedRouteSnapshot?

Solución:

No hay una función lista para usar del enrutador angular para lograr eso, así que las escribí:

function getResolvedUrl(route: ActivatedRouteSnapshot): string {
    return route.pathFromRoot
        .map(v => v.url.map(segment => segment.toString()).join("https://foroayuda.es/"))
        .join("https://foroayuda.es/");
}

function getConfiguredUrl(route: ActivatedRouteSnapshot): string {
    return "https://foroayuda.es/" + route.pathFromRoot
        .filter(v => v.routeConfig)
        .map(v => v.routeConfig!.path)
        .join("https://foroayuda.es/");
}

Salida de ejemplo cuando route es desde ProjectComponent:

const routes: Routes = [
    {
        path: 'project', component: ProjectListComponent, children: [
            {path: ':id', component: ProjectComponent}
        ]
    },
];
getResolvedUrl(route) => /project/id1
getConfiguredUrl(route) => /project/:id

intente esto para obtenerlo de RouterStateSnapshot

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
      console.log(state.url)
      ...
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *