0

这对我的项目来说是一个非常特殊的问题,所以如果它是愚蠢的,那么请放过我。

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

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

代码是这样的:

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

需要帮助:我需要在我的 TranslationClick方法中获取 ng-container 中 *ngFor 的索引 k,如下所示:

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

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

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

4

1 回答 1

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>
于 2017-09-01T10:52:05.837 回答