2017-08-01 4 views
2

私のアプリケーションでAngular2 Material Design data tableを使用しています。素晴らしいです。インデックス番号または行番号を取得する方法があるかどうか疑問に思っていましたか? row.indexのようなもの? CDK data table documentationでは、「このディレクティブはngFor(インデックス、偶数、奇数、最初、最後)と同じプロパティをエクスポートしますが、インデックスを取得する方法の例はありません」ということに気づいています。CDKデータテーブルまたはMaterial2データテーブルを持つインデックスプロパティはありますか?

ご迷惑をおかけして申し訳ございません。ありがとう!

答えて

9

あなたは<md-row>

<md-row *cdkRowDef="let row; columns: displayedColumns; let i = index; let isOdd = odd; let isEven = even; let isLast = last" 
     [ngClass]="{'highlight': selectedRowIndex == row.id}" 
     (click)="highlight(row, i, isOdd, isEven, isLast)"> 
</md-row> 

TS内let i = indexを追加し、行インデックスに*ngForのような同じように得ることができます。そのために働く

highlight(row, index, oddFlag, evenFlag, lastFlag){ 
    alert("index:" + index + " odd: " + oddFlag + " even: " + evenFlag + " last: " + lastFlag); 
    this.selectedRowIndex = row.id; 
} 

Plunker demo

4

おかげ@Nehal、例。私はインデックスを使用してエントリごとにユニークなIDを作成しようとしていたので、インデックスをcdkCellDefと定義した同様のソリューションも見つかりました。以下は私の解答です。インデックスはiです。

<md-cell *cdkCellDef="let row; let i = index;"> 
    <div id="{{i}}-info"> 
    index: {{i}} 
    info: {{row.info}} 
    </div> 
</md-cell> 
関連する問題