Angular 9 routerLink разрешает точку с запятой в ;

#angular #render #urlencode #routerlink

#angular #визуализация #urlencode #routerlink

Вопрос:

Как я могу запретить Angular 9 отрисовывать hrefs routerLink с кодировкой URL?

Вот пример stackblitz проблемы, приведенный ниже пример:

https://angular-ivy-sxczmy.stackblitz.io/

машинописный текст:

 myurl = "/testing;parameter1=abc";
  

шаблон:

 <p>myurl = {{myurl}}<p>
<a [routerLink]="myurl">Testing</a>
  

Упрощенный вывод:

 <p>myurl = /testing;parameter1=abc</p>
<a href="/testing;parameter1=abc">Testing</a>
  

Как мне запретить рендеринг ссылки href с использованием ;, = вместо точки с запятой и equals?

Спасибо!

Комментарии:

1. Почему вы используете querystrings? Вы должны использовать параметры маршрута

Ответ №1:

Angular не работает таким образом для обработки параметров запроса, вы должны объявлять их отдельно :

 <a routerLink="/testing" [queryParams]="{parameter1: 'abc'}">Testing</a>
  

Ответ №2:

Вы должны создать отдельный объект для параметров, а затем передать его внутри [routerLink], в вашем случае:

 myurl = "/testing";
myUrlParams = {parameter1: 'abc'}

<a [routerLink]="[myurl, myUrlParams]">Testing</a>