无法绑定到'routerLink',因为它不是'a'的已知属性

时间:2016-09-27 21:31:43

标签: angular angular2-routing

我正在将我们的一个应用程序从rc4更新为angular2.0.0,并且我在运行时遇到模板解析错误。这是我的视图模板:

<div *ngFor="let widget of widgets" class="col-xs-3 quick-link">
    <a [routerLink]="['/Tile', widget.WidgetRoute.Feature, widget.WidgetRoute.SubFeature]">
        <div class="tile-icon">
            <span [className]="widget.IconCssClass"></span>
            <span *ngIf="widget.BadgeNumber > 0" class="badge">{{widget.BadgeNumber}}</span>
        </div>
        <h4>{{widget.Text}}</h4>
    </a>
</div>

错误发生在路由器链接上。这是错误:

Can't bind to 'routerLink' since it isn't a known property of 'a'. ("

    <div *ngFor="let widget of widgets" class="col-xs-3 quick-link">
        <a [ERROR ->][routerLink]="['/Tile', widget.WidgetRoute.Feature, widget.WidgetRoute.SubFeature]">
            <di"): LdrComponent@4:19
Can't bind to 'ngIf' since it isn't a known property of 'span'. ("tile-icon">
                <span [className]="widget.IconCssClass"></span>
                <span [ERROR ->]*ngIf="widget.BadgeNumber > 0" class="badge">{{widget.BadgeNumber}}</span>
            </div>
     "): LdrComponent@7:22

routerLink对我来说似乎没有变形......我做错了什么?

2 个答案:

答案 0 :(得分:31)

问题是您忘了将RouterModule添加到NgModule组件中。在RC中,这已添加到@Component({directives: [ROUTER_DIRECTIVES]}),但现在已移至@NgModule({ imports: [RouterModule]})

定义路线时,您要导入的其中一个组件将是RouterModule,用于呼叫forRootforChild。导入路径时,将自动导入。

因此,您可以通过这种方式获取RouterLink,也可以直接导入imports的{​​{1}}属性。

答案 1 :(得分:2)

自rc-4以来,一些语法已经改变,特别是如果你没有使用路由器3.0。

请点击此处的RouterLink部分。

https://angular.io/docs/ts/latest/guide/router.html

要检查的其他几件事是设置app.module.ts的Configuration部分。

希望这能让你朝着正确的方向前进!