Angular 9 routerLink将分号解析为%3B

问题描述

如何防止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>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...