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();