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();

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