Я не уверен, почему у вас есть этот код в вашей функции trigger
. Но если вам нужно получить имя столбца при нажатии на ячейку данных, вы можете использовать следующий подход.
- Внедрите в ваш
trigger
вызов функции текущее событие объект и ваш элемент строки заголовка переменная шаблона :
<table class="table table-hover table-bordered table-responsive-xl" id="table">
<tr #header>
</tr>
<tbody>
<ng-container *ngFor="let data of data1">
<ng-container *ngIf="data.expanded">
<tr *ngFor="let data of findDetails(data)" (click)="trigger($event, header)">
</tr>
</ng-container>
</ng-container>
</tbody>
</table>
Итак, #header
имя присваивается первому элементу tr
, а затем оно передается вместе с $event
в функцию trigger
.
- В вашей функции
trigger
используйте эти два параметра. $event
будет обычным MouseEvent объектом, а header
будет обычным tr элементом. После этого вы можете найти заголовок столбца, по которому щелкнули, по индексу ячейки, по которому щелкнули, в вашей строке. gsnedders в потоке StackOverflow предоставил решение о том, как найти индекс элемента внутри его родителя. Ваша trigger
функция может выглядеть следующим образом:
trigger($event, header) {
const index = this.getChildNumber($event.target);
alert(header.childNodes[index].textContent.trim());
}
Этот проект StackBlitz иллюстрирует этот подход.