Angular4 routerLink中URL的转义
使用Angular4,我可以使用以下语法链接到组件:Angular4 routerLink中URL的转义,angular,url,escaping,Angular,Url,Escaping,使用Angular4,我可以使用以下语法链接到组件: <a routerLink="MYLINK">link</a> 或 链接 这是否记录在任何地方 我的期望是,当传递路径时,路径必须是URL编码的。传递段数组时,这些段将不会进行URL编码。Crea un-archivo CustomUrlSerializer.ts 从“@angular/router”导入{UrlSerializer,UrlTree,DefaultUrlSerializer} export clas
<a routerLink="MYLINK">link</a>
或
链接
这是否记录在任何地方
我的期望是,当传递路径时,路径必须是URL编码的。传递段数组时,这些段将不会进行URL编码。Crea un-archivo CustomUrlSerializer.ts 从“@angular/router”导入{UrlSerializer,UrlTree,DefaultUrlSerializer}
export class CustomUrlSerializer implements UrlSerializer {
parse(url: any): UrlTree {
let dus = new DefaultUrlSerializer();
return dus.parse(url);
}
serialize(tree: UrlTree): any {
let dus = new DefaultUrlSerializer(),
path = dus.serialize(tree);
// use your regex to replace as per your requirement.
return path.replace(/%20/g,' ');
}
}
`
导入en-tu app.module.ts
提供程序:[{provide:UrlSerializer,useClass:CustomUrlSerializer}],Crea un archivo CustomUrlSerializer.ts 从“@angular/router”导入{UrlSerializer,UrlTree,DefaultUrlSerializer}
export class CustomUrlSerializer implements UrlSerializer {
parse(url: any): UrlTree {
let dus = new DefaultUrlSerializer();
return dus.parse(url);
}
serialize(tree: UrlTree): any {
let dus = new DefaultUrlSerializer(),
path = dus.serialize(tree);
// use your regex to replace as per your requirement.
return path.replace(/%20/g,' ');
}
}
`
导入en-tu app.module.ts
提供者:[{provide:UrlSerializer,useClass:CustomUrlSerializer}],这篇文章可能会解决这个问题,它似乎与查询参数有关,而在上面的问题中,我对路径本身感兴趣。我不认为答案是特定于queyparameter的。。请试一下……对不起,我说得太慢了,但我不明白这和这个问题有什么关系,也不知道我会尝试什么。我基本上想了解“routerLink”指令使用的语法,而不必重新配置此逻辑。结果表明,路由器链接没有使用链接中提到的URL编码器。它将路径分割为段,但不对段应用任何解码。这与解析URL的方式不同,在本例中,对段进行解码。对我来说,这看起来像是一种不一致的行为。可能可以通过这篇文章来解决,因为它似乎与查询参数有关,而在上面的问题中,我对路径本身感兴趣。我不认为答案是特定于queyparameter的。。请试一下……对不起,我说得太慢了,但我不明白这和这个问题有什么关系,也不知道我会尝试什么。我基本上想了解“routerLink”指令使用的语法,而不必重新配置此逻辑。结果表明,路由器链接没有使用链接中提到的URL编码器。它将路径分割为段,但不对段应用任何解码。这与解析URL的方式不同,在本例中,对段进行解码。在我看来,这似乎是一种前后矛盾的行为。
export class CustomUrlSerializer implements UrlSerializer {
parse(url: any): UrlTree {
let dus = new DefaultUrlSerializer();
return dus.parse(url);
}
serialize(tree: UrlTree): any {
let dus = new DefaultUrlSerializer(),
path = dus.serialize(tree);
// use your regex to replace as per your requirement.
return path.replace(/%20/g,' ');
}
}