Невозможно связать с 'routerLink', так как это не известное свойство 'a'
Я обновляю одно из наших приложений от 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"): [email protected]: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>
"): [email protected]:22
РоутерЛинк не кажется мне неправильным... Что я сделал не так?
Ответы
Ответ 1
Проблема заключается в том, что вы забыли добавить RouterModule
к вашему компоненту NgModule
. В RC это было добавлено к @Component({directives: [ROUTER_DIRECTIVES]})
, однако теперь это перемещено в @NgModule({ imports: [RouterModule]})
.
Когда вы определяете маршруты, одним из компонентов, которые вы будете импортировать, будет RouterModule
, который вы будете использовать для вызова forRoot
или forChild
. При импорте маршрута это будет автоматически импортировано.
Итак, вы получите RouterLink либо этим способом, либо прямым импортом в свойство imports
@NgModule
.
Ответ 2
Часть синтаксиса изменилась с rc-4, особенно если вы не использовали маршрутизатор 3.0.
Следуйте за разделом RouterLink здесь.
https://angular.io/docs/ts/latest/guide/router.html
Несколько других вещей, которые нужно проверить, это часть Configuration
, которая устанавливает app.module.ts.
Надеюсь, это поставит вас в правильном направлении!