J'espère que cela aidera quelqu'un d'autre.
La question ci-dessus indique que la valeur du paramètre de requête est nécessaire après la redirection de la page et nous pouvons supposer que la valeur de l'instantané (l'alternative non observable) serait suffisante.
Personne ici n'a mentionné snapshot.paramMap.get dans la documentation officielle .
this.route.snapshot.paramMap.get('id')
Donc avant de l'envoyer, ajoutez ceci dans le composant d'envoi / redirection:
import { Router } from '@angular/router';
puis redirigez comme l'un ou l'autre (documenté ici ):
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
ou simplement:
this.router.navigate(['/heroes', heroId ]);
Assurez-vous que vous l'avez ajouté dans votre module de routage comme indiqué ici :
{ path: 'hero/:id', component: HeroDetailComponent }
Et enfin, dans votre composant qui doit utiliser le paramètre de requête
ajouter des importations (documentées ici ):
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
inject ActivatedRoute
(la documentation importe également switchMap et injecte également Router et HeroService - mais ils sont nécessaires uniquement pour une alternative observable - ils ne sont PAS nécessaires lorsque vous utilisez une alternative de capture instantanée comme dans notre cas):
constructor(
private route: ActivatedRoute
) {}
REMARQUE: SI VOUS AJOUTEZ LE MODULE DE ROUTAGE À UN MODULE DE FONCTIONNALITÉS (COMME INDIQUÉ DANS LA DOCUMENTATION) ASSUREZ-VOUS QUE DANS APP.MODULE.ts QUE LE MODULE DE ROUTAGE VIENT AVANT AppRoutingModule (ou tout autre fichier avec des routes d'application au niveau racine) DANS LES IMPORTATIONS: []. AUTREMENT, LES ITINÉRAIRES DE FONCTIONNEMENT NE SERONT PAS TROUVÉS (COMME ILS VIENDRAI APRÈS {path: '**', redirectTo: '/ not-found'} et vous ne verriez que des messages non trouvés).
@RouteConfig
celapath
?