簡體   English   中英

Angular 2-根據組件變量設置列表項的屬性

[英]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>

另請參見實現angular 2的ngClassEven ngClassOdd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM