Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

269
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!