javascript - 谷歌可视化数据表间歇性问题

标签 javascript datatable google-visualization

我正在使用谷歌分析和可视化库为我们的分析数字创建仪表板。它运行良好,但开始间歇性地出现您使用错误的数据类型调用了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 Analytics 请求返回的结果数)。

知道什么会导致 DataTable(results.dataTable) 有时无法正常工作吗?

最佳答案

我搜索了各种 Angular 并尝试了很多不同的代码,但最终我发现我应该像这样加载库......

google.load("visualization", "1", {packages:["table","corechart"]});
google.setOnLoadCallback(getStarted);

问题已经消失了。不知道这是否正确,但目前有效。

关于javascript - 谷歌可视化数据表间歇性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36849233/

相关文章:

javascript - 使用 Greasemonkey 删除列表元素

python - 在DolphinDB的Python API中,使用s.loadTable和s.table加载内存表有什么区别?

javascript - 在 Google 条形图中自定义 hAxis 刻度颜色

javascript - ng-google-chart 柱形图中每列的自定义颜色

php - 如何将数据从javascript作为多维数组发送到PHP

javascript - jquery 将数据属性传递给回调函数

javascript - 从数据表中删除垂直边界线

.net - 如何将数据集/数据表从 Tomcat 中继到 .NET 应用程序?

jquery - 在 jqueryui ajax 选项卡中使用 Google Table

javascript - Facebook 分享按钮上的自定义文本