2016-11-11 75 views
1

我想动态创建路由链接。Angular 2:使用函数生成路由链接/动态生成routerLink

我有HTML加载的页面,但是,我需要在URL中使用一个ID,这是可用的更晚。

HTML:

<a href="javascript:void(0)" routerLink="cartoonBoxUrl()" routerLinkActive="active">Add Content to Cartoon Box</a> 

在此routelink该链接包含卡通盒的ID(/箱盒/ 1)。这个ID在页面加载后可用。因此,我需要一种方法来创建一个路线链接来包含此ID。

所以我相信我们可以这样做:routerLink="'cartoon-box/' + id",但我希望routerlink链接到一个组件功能

+0

请添加代码,演示了你尽力去完成,你尝试和在那里你失败的。 –

+0

@GünterZöchbauer:完成..请检查 –

+0

那么有什么问题?你可以在模板表达式中使用方法。 –

回答

6

没有[]角不计算表达式和只使用cartoonBoxUrl()为文本字符串。

<a href="javascript:void(0)" [routerLink]="cartoonBoxUrl()" routerLinkActive="active">Add Content to Cartoon Box</a> 
0
<a href="javascript:void(0)" (click)=cartoonBoxUrl()>Add Content to Cartoon Box</a> 

在TS component.ts文件做

import {Router} from "@angular/router"; 
public ID: any; 
constructor(private router: Router){} 
cartoonBoxUrl(){ 
this.ID = Your LinkId; 
this.router.navigate(['YourRouteLink/', this.ID]); 

} 
+0

这样做,routerLinkActive会丢失。枪手的回答是正确的做法。 – DSF

+0

这是很有用的,你想打开一个链接到Angular应用程序之外的其他地方。 – rmcsharry