Angular - тег привязки с URL-адресом routerlink, кодируемым несколько раз для атрибута href

<a [routerLink]="'/stacks/'+stack.stackId+'/modify'" (click)="onClickModifyStack(stack.stackId)">

Я использую массив шаблонов,

Сценарий: stack.stackId = 'Stack123 / 22', который я кодирую с помощью encodeURIComponent, он отлично отображается в routerlink, но в href кодируется несколько раз.

Я пробовал кодировать его, прежде чем назначить ему ссылку на маршрутизатор, но все равно не работал.

Ожидается: [mainurl] / stacks / Stack123% 2F22 / изменить

В настоящее время я получаю - [mainurl] / stacks / Stack123% 252F22 / modify

Заранее спасибо.


person up6616    schedule 14.04.2020    source источник


Ответы (1)


У меня была аналогичная проблема, и я решил использовать синтаксис массива, который будет кодировать каждый сегмент пути, как указано здесь: https://angular.io/api/router/RouterLink

Таким образом, используя ваш код, он изменится на:

<a [routerLink]="['/stacks/', stack.stackId, '/modify']" (click)="onClickModifyStack(stack.stackId)">
person thenninger    schedule 22.07.2020