Использование функции addEventListener внутри функции просмотра Google Linechart

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

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

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

The problem is, I cannot put these view requests inside my if statements because they are not defined within the scope of the event listener. I can take my if statement out of the event listener and say if (a.value == 'selectedValue') but then the event listener only takes the default selected value (in this case, 'maint') and does not recognize changed value 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.info('maint');

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

              } else if (this.value = 'sf'){
                 console.info('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

Пожалуйста, добавьте соответствующие языковые теги. Это веб-приложение, основанное на скрипте приложений Google или на странице html / javascript?

TheMaster 27.11.2018 23:13

для пояснения, вы хотите установить представление диаграммы при изменении выбора и установить столбцы представления на основе значения выбора?

WhiteHat 28.11.2018 00:06

@WhiteHat да, это правильно! В настоящее время он работает, но только если я не включаю слушателя. Но мне нужен слушатель, чтобы пользователь мог выбрать, какие столбцы они хотят видеть.

Melody Anoni 28.11.2018 18:17

@TheMaster спасибо, я понял! Это использует google appsscript с gs для бэкэнда и отдельные файлы html и js

Melody Anoni 28.11.2018 18:18

так как / когда сейчас вызывается setChartView? вы захотите вызвать setChartView, когда выбор изменится, поэтому вам нужно переместить прослушиватель событий за пределы setChartView ...

WhiteHat 28.11.2018 18:36

Спасибо, я понимаю, что звонил setChartView при загрузке страницы, что имеет смысл, почему при нажатии ничего не происходит

Melody Anoni 30.11.2018 15:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
75
0

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