如何在Angular 8中的“[routerLink]”上禁用动态生成的URL编码?
我有如下如何在Angular 8中的“[routerLink]”上禁用动态生成的URL编码?,angular,angular-routing,Angular,Angular Routing,我有如下[routerLink] <li *ngFor="let item of pageNumbers" class="page-item"> <a class="page-link" [routerLink]="getPageUrl(item) | async" routerLinkActive="active" >{{ item }}</a > </l
[routerLink]
<li *ngFor="let item of pageNumbers" class="page-item">
<a
class="page-link"
[routerLink]="getPageUrl(item) | async"
routerLinkActive="active"
>{{ item }}</a
>
</li>
但在浏览器上显示url如下
http://localhost:3005/documents%3FstartIndex%3D1
期望的:
http://localhost:3005/documents?startIndex=1
我是不是遗漏了什么?我只想直接将分页绑定到[routerLink],但会有更多的查询字符串参数(过滤器、排序)进入URL,这就是我尝试动态生成URL的原因。检查文档以了解:
用于传递[routerLink]
之前的内容,称为“参数”?
用于传递[queryParams]
之后的内容,称为“查询参数”?
getPageUrl
返回一个对象,而不是一个字符串,该对象将同时具有参数和查询参数:
publicGetPageURL(页码:number):可观察{
返回this.route.url.pipe(
映射((段:URLSEMENT[])=>{
返回{params:segments,queryParams:{startIndex:pageNumber};
})
);
}
你是这样使用它的:
{{item}}您能检查一下您提供的关于router.navigate()的URL吗
。我不想处理这个问题,我希望生成的URL显示为非编码。有一个关于“按URL导航检查”的答案,我不想动态导航。我希望URL在鼠标悬停在href上时显示,以便人们可以将其添加到书签中。我刚刚注意到,queryParams
是我需要使用的东西。感谢您的帮助ost.您根本不需要路由URL。只需传递routerLink=“.”
然后是queryParams。基本上不需要TS。如果您还有其他查询参数,请确保查看queryParamsHandling。queryParamsHandling与merge承诺一起,我没有注意到。谢谢!
http://localhost:3005/documents?startIndex=1