J'ai la configuration d'itinéraire suivante dans mon application Angular

...
{ path: 'item/new', component: ItemDetailsComponent, pathMatch: 'full', data: { new: true } },
{ path: 'item/:id/:action', component: ItemDetailsComponent, pathMatch: 'full' },
...

Étaient : action peut être "vue" ou "modifier". Les trois chemins possibles fonctionnent lorsque je les saisis directement dans le navigateur. Cependant, les liens de routeur dans le modèle d'élément ne:

<div routerLink="['/item', id, 'edit']">Test</div>

"id" est défini dans le composant, donc ce n'est probablement pas le problème. L'erreur de la console du navigateur indique que l'URL est en quelque sorte ajoutée:

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'item/2/view/%5B'/item',%20id,%20'edit'%5D'
Error: Cannot match any routes. URL Segment: 'item/2/view/%5B'/item',%20id,%20'edit'%5D'

Étant donné que le lien du routeur commence par une barre oblique, je m'attendais à ce que cela fonctionne.

1
Arizel 11 mars 2021 à 12:02

1 réponse

Meilleure réponse

Tu devrais utiliser

<div [routerLink]="['/item', id, 'edit']">Test</div>

Ou

<div routerLink="/item/{{id}}/edit">Test</div>
0
pc_coder 11 mars 2021 à 10:16