Как я могу сделать так, чтобы гугл-индикатор читал данные из тега ввода, который был создан функцией над ним - PullRequest
1 голос
/ 11 марта 2019

Я создал тег Input из функции function1 () с помощью inputRowInputField = document.createElement('input') и назначил идентификатор и значение с помощью inputRowInputField.id = "input_1", inputRowInputField.value = 10. Я пытаюсь прочитать значение, назначенное выше, через датчик Google, определенный в функции 3 (), как показано ниже. Также я создаю chart_div, а также из функции 2 ()

function drawChart() {
        var data = google.visualization.arrayToDataTable([
            ['Label', 'Value'],
            ['Test', Number(document.getElementById("input_1").value)]
        ]);
        var options = {
            max: 100,
            min: 0,
            height: 110,
            yellowFrom: 80,
            yellowTo: 90,
            greenFrom: 90,
            greenTo: 100,
            minorTicks: 2
        };
        var chart = new google.visualization.Gauge(document.getElementById('chart_div');
        chart.draw(data, options);

Я вызываю функции ниже

function1()
function2()
google.load('visualization', '1', {
        packages: ['gauge']
    });
google.setOnLoadCallback(function3());

Я получаю сообщение об ошибке при вызове функции 3 (): Uncaught TypeError: Cannot read property 'arrayToDataTable' of undefined

1 Ответ

0 голосов
/ 11 марта 2019

сначала вы используете старую версию Google Chart.
jsapi больше не должен использоваться, см. обновление кода загрузчика библиотеки .

удалить ...

<script src="https://www.google.com/jsapi"></script>

добавить ...

<script src="https://www.gstatic.com/charts/loader.js"></script>

это изменит только два рассматриваемых утверждения ...

теперь, для вопроса ...

setOnLoadCallback принимает ссылку на функцию ...

function3

не результат функции ...

function3()

изменить на ...

google.charts.load('current', {
  packages: ['gauge']
});
google.charts.setOnLoadCallback(function3);

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

google.charts.setOnLoadCallback(function () {
  function3(arg1, arg2);
});
...