javascript - Angular routerLink - qual é a sintaxe correta quando você quer adicionar texto extra à URL?
Olá, eu tenho um componente que gera links corretamente com a localização da URL href apropriada (observe [routerLink]="card.id", http://localhost:4200/dashboard/my-cards/DmJHJJA1e77fEEImKBju):
<a
*ngFor="let card of cards; let i = index"
class="list-group-item list-group-item-action d-flex flex-row align-items-start justify-content-between"
[routerLink]="card.id"
routerLinkActive="active"
>
<div class="d-flex flex-column card-info-container">
<h4 class="list-group-item-heading">{{card.name}}</h4>
<p class="mb-1">{{card.description}}</p>
</div>
<img [src]="card.imagePath" alt="" class="img-responsive" style="max-width: 50px;">
</a>
Eu tenho outra rota configurada assim:
{
path: ':id/edit',
component: CardEditComponent,
canActivate: [AuthGuardService]
}
Então, o que estou tentando fazer é, no componente acima, vincular diretamente a esta rota/componente. Eu mudei a sintaxe [routerLink] para o que você vê abaixo e obtive esta URL http://localhost:4200/dashboard/my-cards/NaN
[routerLink]="card.id/edit"
Está claro que não posso atualizar o routerLink como fiz - isso é possível de fazer apenas via sintaxe no template? Ou devo ter um evento onclick para redirecionar conforme necessário?
Resposta #1
tente routerLink="{{card.id}}/edit"
Resposta #2
Você pode definir seu routerLink da seguinte maneira
[routerLink]="[card.id, 'edit']"