我正在将我们的一个应用程序从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对我来说似乎没有变形......我做错了什么?
答案 0 :(得分:31)
问题是您忘了将RouterModule
添加到NgModule
组件中。在RC中,这已添加到@Component({directives: [ROUTER_DIRECTIVES]})
,但现在已移至@NgModule({ imports: [RouterModule]})
。
定义路线时,您要导入的其中一个组件将是RouterModule
,用于呼叫forRoot
或forChild
。导入路径时,将自动导入。
因此,您可以通过这种方式获取RouterLink,也可以直接导入imports
的{{1}}属性。
答案 1 :(得分:2)
自rc-4以来,一些语法已经改变,特别是如果你没有使用路由器3.0。
请点击此处的RouterLink部分。
https://angular.io/docs/ts/latest/guide/router.html
要检查的其他几件事是设置app.module.ts的Configuration
部分。
希望这能让你朝着正确的方向前进!