使用Google Visualization动态调用构造函数
Dynamically calling a constructor with Google Visualizations?
我正在使用谷歌可视化,我正在努力解决一些问题。这对我来说似乎很简单,但我似乎找不到合适的Javascript文档,也找不到谷歌文档中能让我清楚地知道如何做到这一点的文档。
现在,我在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)
这将使我能够调用create其他谷歌可视化,所有这些都使用相同的drawChart函数。
TL:DR,我如何动态调用构造函数来实现这一点:
new google.visualization("BarChart",destination)
new google.visualization("PieChart",destination)
new google.visualization("LineGraph",destination)
这样试试。。。
new google.visualization["BarChart"](destination)
相关文章:
- 使用Google Visualization动态调用构造函数
- 拦截对构造函数的调用
- 在javascript中对数字调用构造函数
- 我应该在原型上还是在新创建的实例上调用构造函数方法
- 在javascript中调用构造函数中函数的对象
- 从“”调用构造函数;摘要“;基本“;类”;
- jshint 和 Function() gets:调用构造函数时缺少“new”前缀
- 缺少调用构造函数的“()”
- JS中的自调用构造函数
- 如何在javascript中从另一个类调用构造函数
- 如何在不调用构造函数的情况下复制对象及其原型链?
- 在javascript中未调用构造函数时绑定此函数
- 如果构造函数在另一个函数中,则新创建的对象调用构造函数undefined
- Javascript调用构造函数中的构造函数
- 为什么我不能在我的模块中调用构造函数方法?
- 覆盖Ext.data.存储,调用构造函数
- 扩展 jQuery 在每个方法调用上调用构造函数
- 如何通过方法传递类实例而不调用构造函数
- 在子生成器中只调用构造函数
- Javascript语法[..]]在函数调用/构造函数调用前