我使用谷歌分析和可视化库为我们的分析数字创建仪表板。它工作得很好,但是已经开始间歇地给我你用错误的数据类型而不是DataTable或DataView 错误调用draw()方法。我搜索并发现了几个线程,说其他人无法重现它或者他们没有正确加载库。我将我的装载更改为以下(有一堆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)有时无法正常工作?
答案 0 :(得分:0)
我搜索各种角度并尝试了很多不同的代码,但最终我发现我应该像这样加载库...
google.load("visualization", "1", {packages:["table","corechart"]});
google.setOnLoadCallback(getStarted);
问题已经消失了。不知道这是否正确,但它现在正在发挥作用。