运行ChartEditor后,setOptions()在ChartWrapper中的图表上不起作用

时间:2016-06-20 13:04:06

标签: javascript google-visualization google-chartwrapper

我在包装器中有一个图表:

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创建了第二个图表并将其置于第一个图表的顶部,而setcolor9()函数仍然引用第一个图表。 ...哦,不确定这是否已连接但是loadEditor9()和redrawChart9()函数创建的图表似乎忽略了wrapper9 var中其他函数设置的高度和宽度选项,并且&#34;在&#34;外部&#34 ; div容器。

1 个答案:

答案 0 :(得分:0)

所以答案当然很简单。

我只需要将redrawChart9()函数更改为以下内容,现在我可以使用该图表执行任何操作。

function redrawChart9(){

      wrapper9 = chartEditor9.getChartWrapper();
      wrapper9.draw();

    }