Chart.js - как мне вызвать функцию обновления безымянного графика?

У меня есть довольно много диаграмм, которые я инициализирую, как показано ниже:

HTML:

<div class="chart chart-one"></div>
<div class="chart chart-two"></div>

JS:

var $charts = $('.chart');

$charts.each(function() {
    new Chart($(this), {...});
}

Затем мне нужно обновить набор данных некоторых из них и вызвать update функция:

var currentChart = $('.chart-one');

...

currentChart.update();

Я получаю следующую ошибку:

chart.update не является функцией

Это, вероятно, происходит потому, что я должен позвонить update функция на самом экземпляре диаграммы, а не объект jquery, но мой не назван, поэтому я не уверен, как получить этот экземпляр?

1 ответ

Я предлагаю вам поставить ваши вторые классы в качестве атрибута вашего divЗатем добавьте экземпляры диаграммы в массив, ключом которого будут эти классы. тогда вы можете позвонить update функционировать на экземплярах вашего графика, как показано ниже:

Html:

<div class="chart" ch="chart-one"></div>
<div class="chart" ch="chart-two"></div>

ЯШ:

var $charts = $('.chart');
var charts = {};

$charts.each(function() {
    var key = $(this).attr("ch");
    charts[key] = new Chart($(this), {...});
}

Функция обновления звонка:

charts["chart-one"].update();
Другие вопросы по тегам