谷歌图表错误'不是数组'关于Ajax更新
Google Charts Error 'Not An Array' on Ajax Update
我有一个简单的谷歌图表,它在初始页面加载时显示出以下数据:
[['days','AA','BB'], ['270',15,15],['240',19,19],['210',23,23],['180',31,31],['150',34,34],['120',47,47],['90',57,57],['60',71,71],['30',81,81],['0',94,94]]
当我试图通过Ajax调用刷新它时,我会得到一个错误"不是数组",该调用当前正返回相同的数据。
这是我正确绘制图表的初始函数:
<script type="text/javascript">
var chart;
var options;
google.load("visualization", "1.1", {packages:["bar"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var dataArray = ${initialChartData};
var data = google.visualization.arrayToDataTable(dataArray);
options = {
chart: {
title: 'Bookings by Days Before Holiday Start Date',
subtitle: 'Sales, Expenses, and Profit: 2014-2017',
}
};
chart = new google.charts.Bar(document.getElementById('columnchart_material'));
chart.draw(data, options);
}
</script>
我的Ajax处理程序:
$('#dataAnalysisForm').ajaxForm({
success : function(responseText) {
//error here as responseText 'is not an array'
//it is the same String returned via Ajax as was
//used to render the initial chart
//the initial data was written to the page server side.
var data = google.visualization.arrayToDataTable(responseText);
chart.draw(data, options);
}
});
为了在初始页面加载和Ajax响应上正确更新,需要对上面的代码进行哪些更改?
只需再次执行此操作:
var chart = new google.visualization.Bar(document.getElementById('columnchart_material'));
chart.draw(data, options);
如果您的数据已经是正确的格式,则无需进行转换,因此您可以使用chart.draw(responseText, options)
相关文章:
- 关于数组的函数式 JavaScript
- 谷歌图表错误'不是数组'关于Ajax更新
- 关于从数组中获取元素的混淆
- 关于Javascript数组洗牌函数
- 关于确定数组中存储的最大值的不同方法的一些问题(加上输出消息问题)
- 关于将HTML元素推入数组的问题
- ClojureScript数组性能需要mod吗?或者它只是关于边界检查
- 关于 javascript 中未捕获的类型错误的数组
- 关于在数组中收集值的最佳方式的建议
- parseInt关于数组和sum问题
- 关于将数组项目处理为分区的问题
- 关于将javascript中的数组插入HTML中的段落元素的基本帮助
- 数据表(JQuery)关于如何多列过滤文本框中给定的包含数据的数组
- (Javascript)关于“this”的说明在数组字面量内
- 关于在javascript中继承数组对象的属性
- 关于如何使用数组存储其他变量名称的任何想法
- 数组结构/语法(原来真正的q是关于类的,我不知道这个术语)
- 关于数组的HTML Javascript
- 关于javascript数组和内置方法的一些问题
- 流星关于改变视图和把数组集合的问题