Parámetros tipo Query

Clase 29 de 80Curso de Angular 4

Resumen

Domina el manejo de parámetros tipo query en Angular para controlar vistas como view o edit, sin romper la navegación. Aquí verás cómo enviarlos desde routerLink y cómo leerlos correctamente con snapshot en el componente de detalle.

¿Qué cambia con los parámetros tipo query en Angular?

Los parámetros tipo query se agregan a la URL después de un signo de interrogación y se separan con &. A diferencia de los parámetros de ruta, no son requeridos por el router y no causan errores si faltan. Sirven para comunicar acciones o contexto al componente, como view, edit o un referrer.

  • No son obligatorios para el router.
  • No detienen la navegación si faltan.
  • Permiten pasar varias claves en un objeto.
  • Útiles para estados: view, edit, referrer.

¿Cómo enviarlos con routerLink y queryParams?

En lugares.component.html, se añade la directiva [queryParams] junto con routerLink y se pasa un objeto con los valores deseados. Al navegar, la URL mostrará los valores de forma inmediata, y puedes agregar o cambiar entradas sin errores.

<!-- lugares.component.html --> <a [routerLink]="['/lugares', lugar.id]" [queryParams]="{ action: 'view', referrer: 'Google' }"> Abrir detalle </a> `` - El objeto define claves como `action` y `referrer`. - La URL refleja cambios al instante. - Puedes agregar más parámetros sin modificar rutas. ### ¿Qué estructura lleva el objeto de query params? Se trata de un **objeto literal** con pares clave-valor que Angular serializa en la URL. - Claves descriptivas: `action`, `referrer`. - Valores simples: cadenas como *view*, *edit*, *Google*. - Se pueden combinar múltiples claves. ## ¿Cómo leerlos en el componente de detalle con snapshot? En `detalle.component.ts`, al imprimir `this.route.queryParams` verás el objeto con los valores. Sin embargo, al intentar acceder directamente a una clave puede aparecer `undefined`. La forma correcta de obtener un valor específico en ese momento es usar **`this.route.snapshot.queryParams`** con notación de corchetes. ```ts // detalle.component.ts ngOnInit(): void { console.log(this.route.queryParams); // Muestra el objeto de la query. console.log(this.route.snapshot.queryParams['action']); // 'edit' o 'view'. console.log(this.route.snapshot.queryParams['referrer']); // 'Google'. }
  • Imprimir queryParams ayuda a ver el objeto completo.
  • Para leer una clave puntual usa snapshot.queryParams['clave'].
  • Si accedes sin snapshot, puedes obtener undefined en el acceso directo.

¿Para qué usar acciones como action y referrer?

Estos parámetros activan comportamientos en la vista de detalle: por ejemplo, mostrar datos en modo view o habilitar inputs para edit, además de registrar el origen con referrer.

  • action: controla si solo se ve o se edita.
  • referrer: identifica el origen, como Google.
  • Ayudan a condicionar la interfaz sin rutas adicionales.

¿Tienes dudas o quieres compartir cómo usas query params en tus vistas? Escribe tu pregunta o ejemplo en los comentarios y seguimos la conversación.