问题描述
如何防止Angular 9使用URL编码呈现routerLink hrefs?
以下是该问题的一个堆栈闪电示例,如下所示:
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%3Bparameter1%3Dabc">Testing</a>
如何防止用%3B,%3D(而不是分号和等号)呈现href?
谢谢!
解决方法
您应该为参数创建一个单独的对象,然后将其传递到 [routerLink] 中,在您的情况下:
myurl = "/testing";
myUrlParams = {parameter1: 'abc'}
<a [routerLink]="[myurl,myUrlParams]">Testing</a>
,
Angular不适用于处理查询参数,您必须分别声明它们:
<a routerLink="/testing" [queryParams]="{parameter1: 'abc'}">Testing</a>