Диаграмма JS показывает старые данные диаграммы при наведении

1

У меня были проблемы с диаграммой пончиков, используя chart.js. Проблема в том, когда я обновляю график, и когда я наводил курсор на график, иногда он показывает старый график. Здесь я вызываю функцию для построения графика:

<select class="form-control" id="ddlCategory" onchange="plotChart()">     
</select>

function plotChart(){
// removed code to retrieve data from firebase
var chart;
var ctx = document.getElementById('donutChart').getContext("2d");
var data = {};
var opt = {
          type: "doughnut",
          data: data,
          options: options
        };

        if (chart) {
            chart.destroy();
            chart.clear();
        }else{
            chart = new Chart(ctx,opt);
        }
for(var i = 0; i < labelData.length; i++){
        chart.config.data.labels.push(labelData[i]);
    }
chart.update();
}

Я пытался уничтожить предыдущий график, прежде чем обновлять его, но безрезультатно. Есть идеи?

Теги:
chart.js
charts

2 ответа

2
Лучший ответ

Вам действительно нужно уничтожить предыдущую диаграмму. Возможно, попробуйте следующее:

function plotChart() {
   // removed code to retrieve data from firebase

   var ctx = document.getElementById('donutChart').getContext("2d");
   var data = {};
   var opt = {
      type: "doughnut",
      data: data,
      options: options
   };

   if (chart) chart.chart.destroy();
   window.chart = new Chart(ctx, opt);

   for (var i = 0; i < labelData.length; i++) {
      chart.config.data.labels.push(labelData[i]);
   }
   chart.update();
}
  • 0
    Где вы объявили переменную myChart?
  • 0
    здесь> window.myChart = ... , вы также можете объявить это вне функции
Показать ещё 12 комментариев
0

Кажется, что ваша переменная диаграммы обновляется каждый раз, когда функция вызывается и, следовательно, никогда не будет существовать при вызове plotchart(). Порекомендовал бы вам объявить переменную до и привести ее в правильную область действия, если она существует. Это, похоже, ядро вашей проблемы

  • 0
    То есть вы имеете в виду объявить переменную диаграммы вне функции? Но не приведет ли это к необъявленной ошибке переменной?
  • 0
    как указано выше, убедитесь, что вы используете последнюю версию, и да, объявить ее за пределами

Ещё вопросы

Сообщество Overcoder
Наверх
Меню