如何正确使用'routerLink'与模型变量

时间:2016-01-04 15:02:08

标签: angular angular2-routing

尝试从绑定到模板类的数据绑定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 &raquo;</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'}
])

1 个答案:

答案 0 :(得分:0)

你应该使用类似的东西;

<p>
  <a class="btn btn-default"
     [routerLink]="[ 'ClassDetail', {id: class._id} ]" role="button">
    View details &raquo;
  </a>
</p>

事实上router-link是Angular2中的指令。请参阅文档中的link

必须使用可绑定输入进行配置(这就是您需要添加直括号的原因)。这允许为指令提供参数。有关详细信息,请参阅&#34;使用绑定配置指令&#34;在属性指令doc:https://angular.io/docs/ts/latest/guide/attribute-directives.html

希望它可以帮到你, 亨利