SetOptions() не работает с диаграммой в ChartWrapper после запуска ChartEditor
У меня есть диаграмма в обертке:
var wrapper9 = null;
var chartcolors09 = parent.defaultcolors;
var chartEditor9 =null;
function Chart9() {
var data = new google.visualization.DataTable(<?=$jsonTableB9?>);
wrapper9 = new google.visualization.ChartWrapper({
chartType:'BarChart',
dataTable: data,
options: {
'colors': chartcolors09,
'chartArea': {
'left': 40,
'top': 50,
'right': 100,
'bottom': 50
},
'legend' :'Right',
'title':'Chart Title'
}
});
}
Я могу запустить функцию для обновления цветов этой диаграммы, используя эту функцию:
function setcolor9(){
wrapper9.setOptions({
'colors': chartcolors09
});
wrapper9.draw(document.getElementById('chart_div9'));
}
и это работает просто отлично. Я также могу использовать другие функции на этом графике в этой оболочке для обновления некоторых других параметров. НО, когда я использую ChartEditor на этом графике
function loadEditor9() {
chartEditor9 = new google.visualization.ChartEditor();
google.visualization.events.addListener(chartEditor9, 'ok', redrawChart9);
chartEditor9.openDialog(wrapper9, {});
}
function redrawChart9(){
chartEditor9.getChartWrapper().draw(document.getElementById('chart_div9'));
}
функция setcolor9() перестает работать. Похоже, что ChartEditor создал 2-й график и поместил его поверх первого, а функция setcolor9() продолжает ссылаться на первый.... о, и не уверен, что это связано, но диаграмма, созданная функциями loadEditor9() и redrawChart9(), похоже, игнорирует параметры высоты и ширины, заданные другими функциями в wrapper9 var, и выходит "за пределы" контейнера div,
1 ответ
Так что ответ, конечно, очень прост.
Мне просто нужно было изменить функцию redrawChart9() на приведенную ниже, и теперь я могу делать с этой диаграммой все, что захочу.
function redrawChart9(){
wrapper9 = chartEditor9.getChartWrapper();
wrapper9.draw();
}