¿Hay alguna forma de enviar datos como parámetro con router.navigate? Quiero decir, algo como este ejemplo, como puedes ver, la ruta tiene un parámetro de datos, pero al hacer esto no funciona:
this.router.navigate(["heroes"], {some-data: "othrData"})
porque algunos datos no son un parámetro válido. ¿Cómo puedo hacer eso? No quiero enviar el parámetro con queryParams.
angular
routing
angular-router
Motomine
fuente
fuente
Respuestas:
Hay mucha confusión sobre este tema porque hay muchas formas diferentes de hacerlo.
Estos son los tipos apropiados utilizados en las siguientes capturas de pantalla:
1) Parámetros de enrutamiento necesarios:
2) Parámetros opcionales de ruta:
3) Parámetros de consulta de ruta:
4) Puede usar un servicio para pasar datos de un componente a otro sin usar parámetros de ruta.
Para ver un ejemplo, consulte: https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
Tengo un plunker de esto aquí: https://plnkr.co/edit/KT4JLmpcwGBM2xdZQeI9?p=preview
fuente
route
tipo esActivatedRoute
, noRouter
.Hay un nuevo método que vino con Angular 7.2.0
https://angular.io/api/router/NavigationExtras#state
Enviar:
Recibir:
Puede encontrar información adicional aquí:
https://github.com/angular/angular/pull/27198
El enlace de arriba contiene este ejemplo, lo que puede ser útil: https://stackblitz.com/edit/angular-bupuzn
fuente
ngOnInit()
quethis.router.getCurrentNavigation().extras
La última versión de angular (7.2 +) ahora tiene la opción de pasar información adicional usando NavigationExtras .
Componente de inicio
nuevoComponente
Salida
Espero que esto ayude!
fuente
@ dev-nish Su código funciona con pequeños ajustes en ellos. hacer el
dentro
entonces, si desea enviar específicamente un tipo de datos, por ejemplo, JSON como resultado de un formulario, puede enviar los datos de la misma manera que se explicó anteriormente.
fuente
En navigationExtra podemos pasar solo un nombre específico como argumento; de lo contrario, muestra un error como el siguiente: Por ejemplo, aquí quiero pasar la clave del cliente en la navegación del enrutador y paso así:
pero muestra algún error como el siguiente:
.
Solución: tenemos que escribir así:
fuente
Lo mejor que encontré en Internet para esto es ngx-navigation-with-data . Es muy simple y bueno para navegar los datos de un componente a otro componente. Solo tiene que importar la clase de componente y usarla de manera muy simple. Supongamos que tiene un hogar y un componente y desea enviar datos
COMPONENTE DEL HOGAR
Sobre el componente
Para cualquier consulta, siga https://www.npmjs.com/package/ngx-navigation-with-data
Comenta abajo para pedir ayuda.
fuente