Est-il possible d'envoyer des données en tant que paramètre avec router.navigate? Je veux dire, quelque chose comme cet exemple, comme vous pouvez le voir, la route a un paramètre de données, mais cela ne fonctionne pas:
this.router.navigate(["heroes"], {some-data: "othrData"})
car certaines données ne sont pas un paramètre valide. Comment puis je faire ça? Je ne veux pas envoyer le paramètre avec queryParams.
angular
routing
angular-router
Motomine
la source
la source
Réponses:
Il y a beaucoup de confusion sur ce sujet car il y a tellement de façons différentes de le faire.
Voici les types appropriés utilisés dans les captures d'écran suivantes:
1) Paramètres de routage requis:
2) Paramètres facultatifs de l'itinéraire:
3) Paramètres de requête d'itinéraire:
4) Vous pouvez utiliser un service pour transmettre des données d'un composant à un autre sans utiliser du tout les paramètres d'itinéraire.
Pour un exemple, voir: https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
J'ai un plunker de ceci ici: https://plnkr.co/edit/KT4JLmpcwGBM2xdZQeI9?p=preview
la source
route
type estActivatedRoute
, nonRouter
.Il existe une nouvelle méthode fournie avec Angular 7.2.0
https://angular.io/api/router/NavigationExtras#state
Envoyer:
Recevoir:
Vous pouvez trouver quelques informations supplémentaires ici:
https://github.com/angular/angular/pull/27198
Le lien ci-dessus contient cet exemple, ce qui peut être utile: https://stackblitz.com/edit/angular-bupuzn
la source
ngOnInit()
asthis.router.getCurrentNavigation().extras
La dernière version d'angular (7.2 +) a maintenant la possibilité de transmettre des informations supplémentaires à l'aide de NavigationExtras .
Composant maison
nouveauComposant
Production
J'espère que cela aiderait!
la source
@ dev-nish Votre code fonctionne avec de petites modifications. faire le
dans
Ensuite, si vous souhaitez envoyer spécifiquement un type de données, par exemple JSON à la suite d'un remplissage de formulaire, vous pouvez envoyer les données de la même manière que celle expliquée précédemment.
la source
Dans navigateExtra, nous ne pouvons passer qu'un certain nom spécifique en argument, sinon il affiche une erreur comme ci-dessous: Pour Ex- Ici, je veux passer la clé client dans le routeur de navigation et je passe comme ceci-
mais il montre une erreur comme ci-dessous:
.
Solution: nous devons écrire comme ceci:
la source
Le mieux que j'ai trouvé sur Internet pour cela est ngx-navigation-with-data . C'est très simple et bon pour la navigation des données d'un composant à un autre composant. Vous devez simplement importer la classe de composant et l'utiliser de manière très simple. Supposons que vous ayez la maison et à propos du composant et que vous souhaitiez envoyer des données
COMPOSANT DE LA MAISON
À PROPOS DE COMPOSANT
Pour toute requête, suivez https://www.npmjs.com/package/ngx-navigation-with-data
Commentez pour obtenir de l'aide.
la source