У меня есть раскрывающийся список 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