第一
推荐
未使用
jsapi
加载库。
根据
release notes
...
通过
jsapi
加载程序不再持续更新。请使用新的gstatic
loader.js
从现在开始
<script src="https://www.gstatic.com/charts/loader.js"></script>
这将
只有
更改
load
陈述
google.charts.load('current', {packages:['corechart']});
下一个
可以将回调添加到load语句。。。
google.charts.load('current', {
packages:['corechart'],
callback: drawChart
});
或者你可以使用它所回报的承诺。。。
google.charts.load('current', {
packages:['corechart']
}).then(drawChart);
此外,load语句将等待文档默认就绪,
因此,它可以用来代替-->
$(document).ready
最后
创建数据表时,
构造函数的参数应该是JSON,而不是简单的数组
看见
Format of the Constructor's JavaScript Literal data Parameter
,
对于特定的JSON格式
如果要从简单数组创建数据表,
使用
static method
--&燃气轮机;
arrayToDataTable
建议类似以下设置。。。
google.charts.load('current', {
packages:['corechart']
}).then(function () {
// get data
drawChart(arrayData);
});
function drawChart(arrayData) {
var chart_data = google.visualization.arrayToDataTable(arrayData);
var options = {
title: 'Comments by Group',
sliceVisibilityThreshold: 1/20,
width: 400,
height: 400
};
var chart = new google.visualization.PieChart(document.getElementById('groupPieChartDiv'));
chart.draw(chart_data, options);
}
function setupFeedback(arrayData) {
// get data
drawChart(arrayData);
}
更新
您可以使用load语句返回的承诺作为回调
和
文档已准备就绪
只需移动代码,如下所示。。。
然后可以加载ajax调用以获取数据
google.charts.load('current', {
packages:['corechart']
}).then(function () {
// move code from document ready here
// get data
getData();
});
function getData() {
$.ajax({
type: 'POST',
contentType: 'application/json',
url: sourceURL,
success: setupFeedback
});
}
function setupFeedback(result) {
// you could draw the chart here
// just move the code from drawChart
// or pass the data along to another function
drawChart(result);
}
function drawChart(result) {
var chart_data = google.visualization.arrayToDataTable(result);
var options = {
title: 'Comments by Group',
sliceVisibilityThreshold: 1/20,
width: 400,
height: 400
};
var chart = new google.visualization.PieChart(document.getElementById('groupPieChartDiv'));
chart.draw(chart_data, options);
}