[英]Angular 2 - set attribute of list item according to component variable
我有一個項目列表,當頁面加載時,我希望第一個項目顯示為活動狀態。
<li *ngFor="let link of links; let i = index;" (click)="setActive(i)" class="{i === activeIndex ? 'active' : ''}">
<a routerLink="{{link.url}}">{{link.text}}</a>
</li>
班級看起來像這樣
export class NavbarComponent{
private links: Array<Object>;
private activeIndex: number = 0;
constructor(private linksService: LinksService) {
this.links = linksService.getNavLinks();
}
setActive(index: number) {
this.activeIndex = index;
}
}
單擊列表項后,該列表項將正確激活。 但是在頁面加載時不行。 我犯什么錯誤?
您可以使用ngFor
提供的first
變量,並使用[class.xxx]="..."
綁定來設置/刪除類:
<li *ngFor="let link of links; let i = index"
[class.active]="activeIndex == i"
(click)="setActive(i)">
<a routerLink="{{link.url}}">{{link.text}}</a>
</li>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.