Google-датчик дает ошибку при отправке нового значения

Я получаю ошибку ссылки, которая data1 не определена, моя форма видна, и я вижу 3 круга, которые я сделал. Но когда я хочу обновить его, я получаю ошибку ссылки.

Вот мой код для рисования, который работает:

google.load('visualization', '1', {packages:['gauge']});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data1 = google.visualization.arrayToDataTable([
          ['Label', 'Value'],
          ['A', 0],
        ]);
        var data2 = google.visualization.arrayToDataTable([
          ['Label', 'Value'],
          ['B', 0]
        ]);
        var data3 = google.visualization.arrayToDataTable([
          ['Label', 'Value'],
          ['C', 0]
        ]);

        var options1 = {
          width: 150, height: 170,
          min:0, max:200,
          minorTicks: 5
        };
        var options2 = {
          width: 150, height: 170,
          min:0, max:7000,
          minorTicks: 5
        };
        var options3 = {
          width: 150, height: 170,
          min:0, max:30,
          minorTicks: 5
        };

        var chart = new google.visualization.Gauge(document.getElementById('visualization1'));
        var chart2 = new google.visualization.Gauge(document.getElementById('visualization2'));
        var chart3 = new google.visualization.Gauge(document.getElementById('visualization3'));
        chart.draw(data1, options1);
        chart2.draw(data2, options2);
        chart3.draw(data3, options3);
      }

И это функция, которую я использую для добавления нового значения в data1

function changeSpeed(dir) {
      console.log(dir);
     data1.setValue(0, 0, dir);
    chart.draw(data1, options1);
    }

Возможно, мои функции установлены неправильно.

1 ответ

Решение

Переменные options1, options2 а также options3, также data1, data2 а также data3 определены в локальной области. Вы должны изменить свою функцию следующим образом:

function changeSpeed(dir, options, data) {
   data.setValue(0, 0, dir);
   chart.draw(data, options);
}

И использовать это:

changeSpeed(dir, options1, data1);

Или вы можете определить переменные в глобальной области видимости.

Другие вопросы по тегам