带路由参数的angular 2 routerLink只能用作字符串

时间:2017-07-03 08:49:03

标签: angular typescript

我有一条params定义为
的路线 export const jobDetailsRoute: Route = { path: 'job-detail/:jobId/:jobTitle', component: JobDetailsComponent, };

我导入我的组件就像这样 public readonly jobDetailsRoute: Route = jobDetailsRoute;

然而,当我如下所述引用路线时,它会生成无效的链接
http://mydomain/job-detail/%3AjobId/%3AjobTitle/oNPj5fwK/Dynamics%20365%20Developer

<a [routerLink]="[ jobDetailsRoute.path, job.id, job.title ]" [translate]="'DASHBOARD.ANCHOR'"></a>

在控制台中抛出以下错误
无法匹配任何路线。网址细分:&#39;工作细节/%3AjobId /%3AjobTitle / oNPj5fwK /动态%20365%20开发者&#39;

当我将routerLink生成为字符串时,我得到了正确的链接http://mydomain:4200/job-detail/oNPj5fwK/Dynamics%20365%20Developer

<a [routerLink]="[ 'job-detail', job.id, job.title ]" [translate]="'DASHBOARD.ANCHOR'"></a>

我出错的任何想法?

1 个答案:

答案 0 :(得分:1)

routerLink需要路径段。 因此,在第一种情况下,当您使用jobDetailsRoute.path时,将连接包含动态段的整个路径以生成完整路径。

  

例如[&#39; / team&#39;,teamId,&#39; user&#39;,userName,{details:true}]表示我们要生成指向/ team / 11 / user的链接/鲍勃;细节=真

Source