我正在尝试执行以下操作:从后端获取一些数据并将其与JQplot烛台图表绑定。
我所取得的成就:
所以这是问题所在:
数据,如果我通过执行以下操作将其绑定到变量:
CASE I_
ohlc = [['2011-01-03 09:30:00',325.7,325.99,324.82,325.39],['2011-01-03 09:35:00',325.44,326.74,325.4,326.46],['2011-01-03 09:40:00',326.54,327.38,326.38,327.23]];
它像微风一样。
但是当我使用
时CASE II_
$.get('MYSERVLET', function(data){
ohlc = data;
});
并生成图表,我在控制台上收到错误消息:
Uncaught #<Object>
init
w.jqplot
(anonymous function)
jQuery.event.handle
jQuery.event.add.elemData.handle.eventHandle
当我在CASE I中执行console.log时,我将它们作为数组。但在CASE II中,它看起来像普通数据。我不知道是否有任何帮助,但我注意到了这一点。
有谁知道如何解决这个问题?我做错了什么?
答案 0 :(得分:1)
对于jqplot,数据必须采用数组形式。您可能必须检查在案例2中获得的数据格式是什么。如果它不是数组格式,那么在$ .get函数内部,您可能必须编写一些自定义代码,将其转换为数组格式。
CASE II_
$.get('MYSERVLET', function(data){
var temp = data;
//code to convert data to array format
//populate ohlc.
});
编辑:
可以使用2 for for循环生成类似于第一种情况的数组
ohlc=[];
for(int l1=0;l1<data.length;l1++)
{
var temp = [];
for(int l2=0;l2<data[l1].length;l2++)
{
temp.push(data[li][l2]);
}
ohlc.push(temp);
}
正如Shortstick建议的那样,只有在从get方法返回数据后才能绘制图表。
答案 1 :(得分:1)
记住get是异步的,确保在初始化图形之前完成加载数据,你必须设置async = false以确保它返回内联。
如果这不是问题那么它将是如何返回数据结构。尝试使用json保留数组等。
答案 2 :(得分:0)
var line1=[];
for( var j = 0; j < list.length; j++){//creates the rows in the table based on the amount of videos
x = table.insertRow(-1); //inserts the cells into the row
x.insertCell(0).innerHTML = list[j][0];
x.insertCell(1).innerHTML = list[j][2];
//x.insertCell(2).innerHTML = list[(j)][5];
//x.insertCell(2);
line1.push([j,1]);
}