对于我的项目来说,这是一个非常特殊的问题,所以如果它是愚蠢的话,请饶我。
我正在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。
或者还有其他更好的方法来跟踪表格的各个单元格吗?
答案 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>