尝试从绑定到模板类的数据绑定routerLink。根据angular.io文档,模板语法似乎是正确的。在应用程序和组件级别尝试了ROUTER_PROVIDERS和ROUTER_BINDINGS(两者都是一个谜)无济于事。我的代码抛出'helpfull'错误:TypeError: linkParams.reduce is not a function in [[ 'ClassDetail', {id: class._id} ] in ]
模板:
<div class="container" >
<div class="row">
<div class="col-md-4 block" *ngFor="#class of classes | async">
<h2>{{class.title}}</h2>
<p>{{class.description}}</p>
<p><a class="btn btn-default" routerLink="[ 'ClassDetail', {id: class._id} ]" role="button">View details »</a></p>
</div>
</div>
</div>
没有routerLink',这很好。
路线配置:
@RouteConfig([
{ path: '/', component: Home, name: 'Index' },
{ path: '/home', component: Home, name: 'Home' },
{ path: '/about', component: AboutComponent, name: 'About' },
{ path: '/classes/:id', component: ClassDetailComponent, name: 'ClassDetail'}
])
答案 0 :(得分:0)
你应该使用类似的东西;
<p>
<a class="btn btn-default"
[routerLink]="[ 'ClassDetail', {id: class._id} ]" role="button">
View details »
</a>
</p>
事实上router-link
是Angular2中的指令。请参阅文档中的link。
必须使用可绑定输入进行配置(这就是您需要添加直括号的原因)。这允许为指令提供参数。有关详细信息,请参阅&#34;使用绑定配置指令&#34;在属性指令doc:https://angular.io/docs/ts/latest/guide/attribute-directives.html。
中希望它可以帮到你, 亨利