Je sais que je peux transmettre un paramètre à routerLink
pour des itinéraires tels que
/user/:id
en écrivant
[routerLink]="['/user', user.id]"
mais qu'en est-il des itinéraires comme celui-ci:
/user/:id/details
Existe-t-il un moyen de définir ce paramètre ou devrais-je envisager un autre schéma d'URL?
Dans votre exemple particulier, vous feriez ce qui suit routerLink
:
[routerLink]="['user', user.id, 'details']"
Pour ce faire dans un contrôleur, vous pouvez injecter Router
et utiliser:
router.navigate(['user', user.id, 'details']);
Plus d'informations dans la Angular docs tableau de paramètres de liens section de Routage et navigation
Peut-être que la réponse est vraiment tardive, mais si vous voulez naviguer sur une autre page avec param, vous pouvez,
[routerLink]="['/user', user.id, 'details']"
de plus, vous ne devriez pas oublier le routage config comme,
[path: 'user/:id/details', component:userComponent, pathMatch: 'full']
Tout d'abord configurer dans le tableau:
const routes: Routes = [
{
path: 'class/:id/enrollment/:guid',
component: ClassEnrollmentComponent
}
];
maintenant en code de script:
this.router.navigate([`class/${classId}/enrollment/${4545455}`]);
recevoir des paramètres dans un autre composant
this.activatedRoute.params.subscribe(params => {
let id = params['id'];
let guid = params['guid'];
console.log(`${id},${guid}`);
});