web-dev-qa-db-fra.com

Comment passer un paramètre à routerLink qui se trouve quelque part dans l'URL?

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?

167

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

281
Wojciech Kwiatek

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']
24
Rıdvan

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}`);
  });
3
Rejwanul Reja