使用Google Visualizations动态调用构造函数?

时间:2016-05-19 11:05:40

标签: javascript ajax google-visualization

我正在使用谷歌可视化,我正试图解决一些问题。这对我来说似乎很简单,但我似乎无法找到适合Javascript的文档,也无法在Google文档中找到能够让我清楚知道如何执行此操作的文档。

现在我的js文件中有一个函数,如下所示:

  function drawChart(raw,columns,options,chart) {
    var data = new google.visualization.arrayToDataTable(JSON.parse(raw));
    var view = new google.visualization.DataView(data);
    view.setColumns(columns);
    chart.draw(view, options);
  }

除了构造函数的一个令人讨厌的问题之外,它看起来很好和很好

看看函数的示例调用:

drawChart(grabarray("?warid="+warid+"&type=0"),[0, 1,{ calc: "stringify", sourceColumn: 1,type: "string",role: "annotation" },2],
    {
      title: "Attempted actions by player",
    },new google.visualization.BarChart(destination);

(注意AJAX正在正常完成,但我将其剪切以使示例更有意义)

正如您在上面所见,我被迫在javascript中直接使用以下行:

new google.visualization.BarChart(destination)

当我想在我的AJAX回归中包含值“BarChart”时,我可以做这样的事情

new google.visualization("BarChart",destination)

这使我能够使用相同的drawChart函数调用create all google visualization。

TL:DR,如何动态调用构造函数来实现此目的:

new google.visualization("BarChart",destination)
new google.visualization("PieChart",destination)
new google.visualization("LineGraph",destination)

1 个答案:

答案 0 :(得分:0)

尝试这样......

new google.visualization["BarChart"](destination)