Angular как найти, какой элемент в QueryList нажат

#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. Да, это тоже предложение Р. Ричардса. Спасибо