在我的角度2应用程序中,我定义了一个路由器链接,如:
<a *ngFor="let demo of demos" [routerLink]="['demo', demo.name]">example</a>
目前我将demo.name作为“example.net/demo/A%20%demo%20%test” . 我想将其格式化为“example.net/demo/a-demo-test”以显示在浏览器地址栏中 .
任何帮助,将不胜感激 .
您可以使用 routerLink 中的函数 . 所以你可以在你的组件中使用一个函数:
routerLink
hyphenateUrlParams(str:string){ return str.replace(' ', '-'); }
并在 routerLink 中使用它:
[routerLink]="['/demo', hyphenateUrlParams(demo.name)]"
这比直接在 routerLink 内变异变量提供了更多的可重用性 .
创建一个将空格转换为连字符的管道 .
@Pipe({ name: 'kebabCase' }) export class KebabCasePipe implements PipeTransform { transform(value: string): string { return value.replace(' ', '-'); } }
在链接中使用管道:
<a *ngFor="let demo of demos" [routerLink]="['demo', demo.name | kebabCase]">example</a>
2 回答
您可以使用
routerLink
中的函数 . 所以你可以在你的组件中使用一个函数:并在
routerLink
中使用它:这比直接在
routerLink
内变异变量提供了更多的可重用性 .创建一个将空格转换为连字符的管道 .
在链接中使用管道: