У меня есть простая линейная диаграмма highcharts в angular6. Мне нужно получить идентификатор div диаграммы, которой он принадлежит при нажатии на диаграмму. Здесь идентификатор div - это chart1, поэтому мне нужно получить это в предупреждении, а также нужно вызвать из-за пределов диаграммы. Я уже пробовал, но это не работает, показывает пустое. Есть ли какое-либо решение для этого. Вот код ниже. Живая демонстрация https://stackblitz.com/edit/angular-yw3xwa?file=src%2Fapp%2Fapp.component.ts
<hello name = "{{ name }}"></hello>
<div (click) = "onClickMe($event)" id = "chart1"></div>
declare var require: any;
import { Component } from '@angular/core';
import * as Highcharts from 'highcharts';
import * as Exporting from 'highcharts/modules/exporting';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
clickMessage = '';
name = 'Angular';
onClickMe(event) {
alert(event.target.id);
}
ngOnInit(){
this.chartFunc('chart1');
}
chartFunc(chartId){
Highcharts.chart(chartId,{
chart: {
type: "spline"
},
title: {
text: "Monthly Average Temperature"
},
series: [
{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,26.5, 23.3, 18.3, 13.9, 9.6]
}
]
});
}
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Нет необходимости проходить все событие (если вам не нужны другие аспекты события, чем вы заявили). На самом деле, это не рекомендуется. Вы можете передать ссылку на элемент с небольшой модификацией.
Solution 1
HTML
<div #referenceKeyName (click) = "onClickMe(referenceKeyName)" id = "chart1"></div>
компонент
onClickMe(referenceKeyName) {
alert(referenceKeyName.id);
}
Технически вам не нужно находить кнопку, по которой нажали, потому что вы передали фактический элемент.
Solution 2
HTML
<div (click) = "onClickMe($event)" id = "chart1"></div>
компонент
onClickMe(event: Event): void {
let elementId: string = (event.target as Element).id;
// do something with the id...
}
Я получаю 2 предупреждения для решения 1, когда я использую идентификатор div из цикла. Я не могу воспроизвести здесь.
Первое предупреждение показывает правильное значение, второе показывает неопределенное значение для каждого клика.
вы хотите создать динамически в цикле for?
Нет, я хочу получить доступ к идентификатору из-за пределов onclick, я имею в виду загрузку
@carreankush, я не могу понять, не могли бы вы создать угловую ссылку stackblitz
Solution2 не работает в случае highcharts, может работать для div