具有自定义json响应的Highcharts系列数据
Highcharts series data with custom json response
一旦调用提交按钮,就会动态构建此图表。图表使用正确的系列名称进行渲染,但不显示任何行。我在我的Highcharts图表中有一个$.get调用,如下所示:
series: [
<% {"WEB1" => Farm.WEB,
"CAT1" => Farm.CAT,
"ELK1" => Farm.ELK,
}.each do |name, farm| %>
{
name: "<%= name %>",
pointInterval: <%= 1.day * 1000 %>,
pointStart: document.forms["myform"]["from"].value,
data: $.get("/farm/1", {
scope: "<%= name %>",
from: document.forms["myform"]["from"].value,
to: document.forms["myform"]["to"].value
}
})
},
<% end %>]
其设计用于返回此自定义json哈希:
[{"x":"2012-07-10T17:00:00Z","y":0.015}]
这一切都有效。get返回正确的散列。但Highcharts不喜欢这样。有人对我如何正确格式化有什么建议吗?提前感谢!
编辑
这就是我的想法。。但它不起作用。。
function(data){
var arr = new Array();
$.each(data, function(index,obj) {
arr.push(obj.y);
});setData(arr);
你只是做错了。ajax不是这样工作的。AJAX是异步的,因此不返回任何内容,而是进行回调。
data: $.get(...)
问题是,$.get不会立即返回任何内容,但也不会阻止或中断js处理,因此浏览器会继续执行下一个js块,甚至在ajax调用完成之前。
这就是你通常的做法。你首先进行$.get调用,完成后创建图表。
$.get("/farm/1", {
scope: "<%= name %>",
from: document.forms["myform"]["from"].value,
to: document.forms["myform"]["to"].value
},function(data){
// use the data that was received to build the highchart
chart=....
}
});
http://api.jquery.com/jQuery.get/
相关文章:
- Highcharts colorsByPoint与系列中的线性渐变一起使用时不起作用
- 访问Highcharts系列的最小/最大值:afterSetExtremes不会激发
- Highcharts系列.数据数据类型限制
- Highcharts显示系列名称,但缺少json源中的数据点
- 仅在Highcharts.js中可见的更改系列
- Highcharts条形图如何添加系列事件
- 具有自定义json响应的Highcharts系列数据
- Highcharts中具有不同时间范围的系列
- 高亮显示工具提示共享项,具体取决于Highcharts中悬停的系列
- Javascript中的Highcharts系列更新
- 如何从“系列”元素中获取HighCharts系列“id”
- highcharts系列删除功能删除所有原始系列数据(即使存储在新变量中)
- 修复了Highcharts系列数据标签中的数据标签维度
- 隐藏Highcharts系列而不使用图例
- 在highcharts系列上呈现HTML数据属性
- 如何在highcharts系列中使用javascript变量
- 动态加载HighCharts系列
- Highcharts系列格式问题(AngularJs)
- 更新在不可见的HighCharts系列问题上改变的数据点
- Javascript Highcharts:系列数据标签格式化程序函数,用于循环数据,而不是格式化数组中的所有数据