Вместо обработки этого logi c (что очень сильно agile) в шаблоне, попробуйте использовать @ViewChildren
.
Получить все элементы массива в шаблоне в QueryList
в своем классе TS и найдите элемент с требуемым индексом -
Ваш шаблон -
<ng-container *ngFor="let item of results;let i = index">
<div #triggerElement lines="none">
{{ i }} {{ item }}
</div>
</ng-container>
Ваш компонент -
import { Component, VERSION, AfterViewInit, ViewChildren, TemplateRef, QueryList, ElementRef } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements AfterViewInit {
@ViewChildren('triggerElement') elements: QueryList<ElementRef>; <---------
results = [ 'Cheese', 'Tomato', 'Olives', 'Basil'];
ngAfterViewInit() {
const element = this.elements.find((e, index) => index === 3); <-----------
console.log(element);
}
}
Я воссоздал по этой ссылке - https://stackblitz.com/edit/vm-tooltip-directive?file=src%2Fapp%2Fapp.component.ts