У меня есть следующий код в шаблоне angular2. Он генерирует список глав и устанавливает свойство clicked на том, что является текущей главой.Множественные привязки шаблонов на элементе углового2
<div class="chapters col s3">
<a *ngFor="let chapter of chapters; let i=index" (click)="clickedItem = i" [class.clicked]="i == clickedItem" class="chapter"
[routerLink]="['/tutorial/chapter', chapter.number]">{{chapter.number}}. {{chapter.title}} </a>
</div>
Вопрос заключается в том, что это только заполняется, когда страница первоначально загружается, если изменения главы, маршрутизатор не обновляет этот компонент, так что «щелкнул» глава не изменится.
Я думал, может быть, я мог бы использовать *ngIf
и привязать его к свойству chapter
моего компонента, который подписался на параметры маршрута, следовательно, это обновляет себя. Затем выберите либо версию с выбранным классом, либо нет. Тем не менее, эта реализация бросает ошибку:
<div class="chapters col s3">
<a *ngFor="let chapter of chapters; let i=index" *ngIf="i==chapter" (click)="clickedItem = i" class="chapter clicked" [routerLink]="['/tutorial/chapter', chapter.number]">{{chapter.number}}. {{chapter.title}} </a>
<a *ngFor="let chapter of chapters; let i=index" *ngIf="i==chapter" (click)="clickedItem != i" class="chapter" [routerLink]="['/tutorial/chapter', chapter.number]">{{chapter.number}}. {{chapter.title}} </a>
</div>
Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with *
Я не могу видеть, как это обертывание в DIV со свойством ngIf будет работать, так как мне нужно i
от ngFor
?
Любые идеи, как я мог бы сделать эту работу?
См http://stackoverflow.com/questions/35100716/angular-2-two -структурные-директивы-on-the-same-dom-element –
Я не понимаю, что «поэтому« щелкнула »главу не меняет». –
@ GünterZöchbauer Итак, если я загружаю главу 0, и нажимается ссылка «Название главы», то я перехожу к главе 1, «Заголовок главы 0.» по-прежнему получает класс с щелчком, а не «1. Заголовок главы " –