angular2元素上的多个模板绑定

时间:2016-09-09 12:54:02

标签: javascript angular

我在angular2模板中有以下代码。它生成一个章节列表,并将clicked属性设置为当前章节的属性。

<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>

问题是这只是在页面初始加载时填充,如果章节发生变化,路由器不刷新此组件,所以&#34;点击&#34;章节没有改变。

我想也许我可以使用*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>
  

在一个元素上不能有多个模板绑定。只使用一个名为&#39; template&#39;或以*

为前缀

我无法看到如何将此包装在带有ngIf属性的div中,因为我需要来自i的{​​{1}}?

我是如何做到这一点的?

0 个答案:

没有答案