【发布时间】:2016-04-25 19:16:54
【问题描述】:
我正在使用谷歌分析和可视化库为我们的分析数据创建仪表板。它运行良好,但开始间歇性地给我 您使用错误类型的数据调用 draw() 方法,而不是 DataTable 或 DataView 错误。我对此进行了搜索,发现几个线程说其他人无法重现它或者他们没有正确加载库。我将加载更改为下面(有一堆 GA 授权,我没有在这里显示。但这部分似乎都在工作。)
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
...
google.charts.load("current", {packages:["table"]});
google.charts.setOnLoadCallback(getStarted);
...
gapi.client.analytics.data.ga.get(eventsObj).execute(function(results){
var viz = new google.visualization.Table($('#my-table-id'));
var dataTable = new google.visualization.DataTable(results.dataTable);
viz.draw(dataTable,{showRowNumber:true,allowHtml:true});
});
当我查看来自 gapi 调用的 results.dataTable 时,它包含我期望的数据。问题似乎在于将这些结果转换为这一行中的 DataTable:
var dataTable = new google.visualization.DataTable(results.dataTable);
当我收到消息时,我在控制台中没有收到任何 javascript 错误。但是,如果我检查该调用返回的数据表,则有一个名为 Ec 的数组,其长度为零。当图表成功时,会有一个名为 ec 的数组,其长度为 12(向 Google 分析的请求返回的结果数)。
知道什么会导致 DataTable(results.dataTable) 有时无法正常工作吗?
【问题讨论】:
-
Data Table Class constructor 下列出的示例显示了用于初始化表的数据格式 -- 可以分享
results.dataTable的示例吗? -
我可以使用调试工具看到它,数据来自谷歌分析的嵌入 api。它似乎遵循结构 -- 带有 cols 和 rows 数组的对象,其中包含具有适当值的对象。
-
问题似乎是第二次通过新的 google.visualization.DataTable() 实际上并没有创建 DataTable 的实例。不知道为什么。
标签: javascript datatable google-visualization