Я использую Highcharts 6. Я использую следующее событие, чтобы получить свой идентификатор точки данных и открыть поповер с простой формой.
plotOptions: {
series: {
point: {
events: {
click: function(e) {
selected_point = e.point.id
$('#chart').popover("toggle")
}
}
}
}
}
Когда форма отправляется, для этой точки данных устанавливается аннотация.
$('body').on('click', '#save_annotation', function() {
var text = $("#annotationForm").val()
myChart.addAnnotation({
labels: [{
point: selected_point,
text: text
}]
})
$('#chart').popover("toggle")
})
Пока это работает отлично. Мне нужен способ изменить и удалить существующую аннотацию. Кажется, что я должен использовать removeAnnotation () , но я не могу понять, как его использовать. В документации указано, что мне нужно передать идентификатор аннотации. Где я могу найти этот идентификатор? Когда я вызываю myChart.annotations, я вижу массив объектов. Каждый объект является аннотацией, но у него нет свойства id.
Мне удалось использовать цикл forEach для удаления конкретной аннотации с помощью метода destroy () , но он оставляет элемент в массиве аннотаций и не рекомендуется.
Как правильно удалить аннотацию? Как я могу получить идентификатор для аннотации? Это сообщение указывает, что addAnnotation () возвращает аннотацию, которую он делает, но возвращенный объект не имеет, как показано. Например, в моем случае annotation.id возвращает неопределенное значение.