【发布时间】:2016-02-01 01:34:31
【问题描述】:
我正在使用 Google Geocharts 并按照 Google 的文档 (https://developers.google.com/chart/interactive/docs/gallery/geochart?hl=en) 来设置这样的图表:
google.charts.load('current', {'packages':['geochart']});
google.setOnLoadCallback(drawRegionsMap);
function drawRegionsMap() {
...
var data = google.visualization.arrayToDataTable(a1);
var options = {};
var chart = new google.visualization.GeoChart(document.getElementById('div_geochart'));
chart.draw(data, options);
};
array a1 是全局定义的。脚本包含行出现在标题中。问题是,有时,我收到一条错误消息:
Uncaught TypeError: Cannot read property 'arrayToDataTable' of undefined
并且图表没有加载。真正的问题是很难查明问题,因为它并不总是发生。似乎有时 google.visualization 尚未设置?但是,使用 setOnLoadCallback 调用 drawRegionsMap 的重点不就是在成功设置 google.visualization 后调用它吗?
我确实尝试过更改 setOnLoadCallback 行的位置,如下所述:Google Visualization - TypeError: Cannot read property 'DataTable' of undefined [Chrome specific]。我还将这两行放在页面的<head> 部分,但有时仍然会出现错误(在 Chrome 和 IE 中测试)。
有人可以告诉我如何避免出现此错误吗?
【问题讨论】:
-
没有。这是唯一调用 drawRegionsMap 的地方。这里仅此而已。 'a1' 被简单地定义为 javacript 起始块顶部的数组:
var a1 = [['Countries', 'Popularity'], ['US', '1']];
标签: javascript charts google-visualization undefined