Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

278
Vistas
Angular: obtener parámetros de route.url a veces da como resultado un texto "indefinido"

Tengo una pregunta.

Encontré un error extraño que no puedo reproducir en mi máquina. Mi aplicación tiene un flujo como este:

  1. El usuario hace clic en una URL corta, llama al backend (nodejs) y el backend hará una redirección a la interfaz angular. Por ejemplo a: (https://mysite/#/actpost/param1/param2)
  2. Cada vez que el backend hace un redireccionamiento, lo pongo en log.txt, lo he comprobado y todos parecen estar correctos, redirigiendo a las URL de frontend correctas (sin "cadena indefinida" en la URL)
  3. En el frontend, dividirá la URL para obtener los parámetros y publicará una solicitud en el backend con dichos parámetros. También lo registro en log.txt durante cada llamada posterior (en el backend). El código para obtener los parámetros es el siguiente:
 ngOnInit(): void { this.param1= this.router.url.split('/')[2]; this.param2 = this.router.url.split('/')[3]; //Do a POST request to backend apiCall(param1, param2);

Luego reviso el registro de publicación y aquí es donde encontré el error, a veces param1 en el cuerpo de la solicitud contiene la cadena "indefinido" en lugar de la cadena real de la URL (param1).

Lo que me lleva a esta pregunta: ¿la función del enrutador es asíncrona? También llené param1 y param2 con una cadena vacía antes de intentar obtener parámetros de la URL, por lo que no sé cómo se puede llenar con una cadena "indefinida". También intenté obtener parámetros a través de Route paramMap activado y sigue ocurriendo el mismo problema.

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El enrutador es asíncrono, debajo de un ejemplo de código para obtener parámetros de URL.

 private ngOnInit(): void { this.route.queryParams.pipe( map(params => [params['id1'],params['id2']]), tap(([a1,a2]) => {console.log("A1:",a1,"A2:",a2)}), catchError((err) => { return throwError(()=>new Error(`Error : ` + err)) }) ).subscribe({next: ([a1,a2])=>{apiCall(a1,a2)}}); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda