在嵌套的* ngFor循环中访问索引

时间:2017-09-01 10:45:42

标签: angular ngfor ng-container

对于我的项目来说,这是一个非常特殊的问题,所以如果它是愚蠢的话,请饶我。

我正在Angular中构建一个动态表,其中每一行都是一个单词,而Columns是语言,每个单元格都是该语言的相应翻译。

所以问题是我必须跟踪用户点击了哪个表格单元格,以便我可以创建或更新该单元格的值。

代码是这样的:

    <tbody>

    <tr *ngFor="let data of data">

    <td contenteditable='true' (keyup.enter)="saveEntry($event)"  
    width="300px" height="40px" >{{data.key}}</td>

    <td *ngFor="let column of tableColumns;let j = index" 
      contenteditable='true'            
     (keyup.enter)="onRowClick($event, column.languageID,             
       data?.value[0]?.dictionaryEntryID)"                         

     (click)="TranslationClick($event,data.value[k].dictionaryID)">


   <ng-container *ngFor="let dataValue of data.value ;let k = index">

   <span *ngIf="column.languageID==dataValue.languageID">

   {{dataValue.translation}}</span>
    </span>
    <span *ngIf="column.languageID!=dataValue.languageID">
    </span>
     </ng-container>
     </td>
     </tr>
    </tbody>

需要帮助:我需要在我的ng-container中获得* ngFor的索引k        这样的TranslationClick方法:

 (click)="TranslationClick($event,data.value[k].dictionaryID)

我知道ng-container * ngFor循环是在第一个之后创建的,但有没有办法可以获得该单元格的索引k。

或者还有其他更好的方法来跟踪表格的各个单元格吗?

1 个答案:

答案 0 :(得分:0)

无法在模板定义之外访问模板变量。

k只能在

中访问
   <ng-container *ngFor="let dataValue of data.value ;let k = index">

   <span *ngIf="column.languageID==dataValue.languageID">

   {{dataValue.translation}}</span>
    </span>
    <span *ngIf="column.languageID!=dataValue.languageID">
    </span>
   </ng-container>