我有一个 Controller ,它以 Google Charts 期望的格式返回(良好)格式化的 JSON。我可以通过导航到 http://localhost:9000/manager/echoVariables
查看输出,操作如下:[["foo",3],["foo", 3]]
我想要进行 AJAX 调用,但无法将此 JSON 传递到 Google Charts。我可以确认 JSON 已被接收,我在 Chrome 浏览器检查器的网络选项卡中进行了验证。
但是我在将此 JSON 字符串传递到 Google Charts 的过程中遇到了 DOM 异常 8
。
这是创建图表的 View :
#{extends 'main.html' /} #{set title:'Home' /} #{set 'moreScripts'}
#{/set}
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
// Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
// Callback that creates and populates a data table,
// instantiates the pie chart, passes in the data and
// draws it.
function drawChart() {
// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows([
['Mushrooms', 3],
['Onions', 1],
['Olives', 1],
['Zucchini', 1],
['Pepperoni', 2]
]);
// Set chart options
var options = {'title':'How Much Pizza I Ate Last Night',
'width':400,
'height':300};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
<script type="text/javascript">
//$.get()
$(document).ready(function() {
$("#result").html();
$.get(
'/manager/echoVariables',
{var1: "foo", var2: 5},
function(responseText){
$("#result").html(responseText);
},
"json"
);
});
</script>
<body>
<!--Div that will hold the pie chart-->
<div id="chart_div"></div>
<div id="result"></div>
</body>
如何使饼图显示我的值,而不是代码片段中给出的值?
谢谢。
最佳答案
您的代码有两个问题。首先,您在 #result
div 上使用 jQuery 的 html()
函数,但您传递的是 javascript 对象,而不是函数期望的字符串。如果您只想查看数据,则可以将其更改为类似
$.get(
'/manager/echoVariables',
{var1: "foo", var2: 5},
function(responseText){
$("#result").html(JSON.stringify(responseText));
},
"json"
);
当然,另一个问题是您实际上并未将结果数据传递给 google 图表 API。为此,您需要使用从 AJAX 调用返回的数据(而不是示例中的数据)来调用 chart.draw
。
关于java - 如何使用 AJAX 查询动态填充 Google Chart,获取 DOM 异常 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117525/