используя функцию addEventListener внутри просмотра функции Google Linechart - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть раскрывающийся список html, который я хочу соединить с линейной диаграммой Google для фильтрации данных.У меня есть прослушиватель событий внутри функции setChartView.Я хочу установить конкретные столбцы на основе того, что выбирает пользователь.

В этом случае:

view.columns.push(columnsTable.getValue(4, 1)); 
view.columns.push(columnsTable.getValue(5, 1));

Проблема в том, что я не могу поместить эти запросы в мои операторы if, потому что они не определены в области действия прослушивателя событий.Я могу взять оператор if из прослушивателя событий и сказать if (a.value == 'selectedValue'), но тогда прослушиватель событий принимает только выбранное по умолчанию значение (в данном случае 'maint') и не распознает измененное значение a.

Как мне разместить мои запросы на просмотр

view.columns.push(columnsTable.getValue(4, 1)); 
view.columns.push(columnsTable.getValue(5, 1));

внутри моего слушателя?И распознали ли эти setChartView значения в прослушивателе?

Я пытался добавить setChartView к параметрам прослушивателя, вызывая setChartView после объявления функции и ссылался на этот https://www.w3schools.com/jsref/met_document_addeventlistener.asp

Я чувствую, что упускаю что-то довольно простое?

    function setChartView(linechart, columnsTable, columnFilter) {
        var state = columnFilter.getState();
        var row;
        var view = {
            columns: [0]
        };

         var a = document.getElementById('select');
         a.addEventListener('change', function() {

              if (this.value = 'maint'){
                 console.log('maint');

              } else if (this.value = 'ru'){
                 console.log('ru');

              } else if (this.value = 'sf'){
                 console.log('sf');
              }

              }, false);



        view.columns.push(columnsTable.getValue(4, 1)); 
        view.columns.push(columnsTable.getValue(5, 1));

        // sort the indices into their original order
        view.columns.sort(function (a, b) {
            return (a - b);
        });

        linechart.setView(view);
        linechart.draw();
    }// end setChartView
...