#angular #typescript
#angular #typescript
Вопрос:
У меня есть ElmentRef (список запросов) набора ячеек таблицы (элементы td html — создаются динамически) с использованием ViewChildren. Я отладил, и набор элементов доступен.
Когда я нажимаю на определенный элемент td html, я вызываю функцию, и в этой функции мне нужно найти, какой элемент в ElementRef(QueryList) нажат. Как я могу это сделать?
component.html
<table>
<tr *ngFor="let i of Arr">
<ng-container *ngFor="let j of Arr">
<td #tdID (click)="cellClicked(tdID)">
</td>
</ng-container>
</tr>
</table>
component.ts
Arr =[1,2,3];
@ViewChildren('tdID') divs:QueryList<ElementRef>;
cellClicked(cell) {
console.log("Cell clicked" cell);
//Help find here which element in the divs QueryList matches "cell"
}
Комментарии:
1. В ваших
i
циклах есть переменныеj
иngFor
; передайте их также в функцию щелчка по ячейке. Таким образом, вы знаете «координаты» ячейки.2. да, это поможет, просто посмотрим, есть ли какой-нибудь прямой способ.
Ответ №1:
<table>
<tr *ngFor="let i of Arr">
<ng-container *ngFor="let j of Arr">
<td #tdID (click)="cellClicked(tdID, i, j)">
</td>
</ng-container>
</tr>
</table>
В вашем файле .ts
cellClicked(tdID, i, j) {
console.log(tdID, i, j)
}
Комментарии:
1. Да, это тоже предложение Р. Ричардса. Спасибо