Я разрабатываю веб-приложение с использованием библиотеки chart.js. Я пытаюсь добавить настраиваемый фильтр для диаграмм, когда пользователь нажимает флажки легенды. Однако я не знаю, как настроить chart.js для вызова моего настраиваемого фильтра.
Например, вот диаграммы моего приложения
Затем я устанавливаю флажок «Температура», и график температуры скрывается.
Когда я установил флажок «Температура», Chart.js вызвал свою функцию по умолчанию при щелчке, чтобы отфильтровать диаграммы.
Я определил свою собственную функцию фильтрации:
public newLegendClickHandler(e, legendItem) {
let index = legendItem.datasetIndex;
let ci = this.chart;
[ci.getDatasetMeta(0),
ci.getDatasetMeta(1),
ci.getDatasetMeta(2)].forEach(function (meta) {
meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;
});
ci.update();
}
Когда я устанавливаю флажок, я хочу вызвать эту функцию, а не функцию фильтра Chart.js по умолчанию.
Я уже прочитал документацию chart.js «Настраиваемые действия при щелчке» и не понимаю, почему атрибут легенды пуст в примере, приведенном командой Chart.js.
Если вы знаете, как заменить функцию onclick по умолчанию для элементов легенды, я буду рад узнать решение :)
Заранее спасибо.