настраиваемые диаграммы фильтров в chart.js

Я разрабатываю веб-приложение с использованием библиотеки 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 по умолчанию для элементов легенды, я буду рад узнать решение :)

Заранее спасибо.


person Jordy    schedule 24.07.2017    source источник


Ответы (1)