JQuery Flot setData没有正确设置数据

时间:2014-01-15 08:52:56

标签: jquery flot

我无法用jquery-flot(flotcharts)做一个实时图表。

这是我的代码:

$(document).ready(function(){
var test = function(){
    $.ajax({
        type: "GET",
        url: "index.json",
        datatype:"json"
    }).always(function(series) {
        console.log(series);
        update(series.responseText);
    });
};

var options = {
    xaxis: {
        mode: "time"
    }
};
var plot = $.plot($("#placeholder"), [{label:"test",data:[[1389185414000,0],[1389185415000,15449]]}], options);
function update(series) {
    console.log(series);
    plot.setData(series);
    console.log(plot.getData());
    plot.setupGrid();
    plot.draw();
    setTimeout(test, 100000);
}
test();
});

问题似乎与setdata函数有关。这是我从ajax请求得到的:

[{
    label: "test",
    data: [
        [1389185414000, 0],
        [1389185415000, 15449],
        [1389185425000, 1406],
        [1389185435000, 187],
        [1389185445000, 1377],
        [1389185455000, 1544],
        [1389185465000, 270],
        [1389185475000, 1681],
        [1389185485000, 687]
    ]
}]

然后,如果我查看plot.getData返回的内容,则会为返回的json字符串中的每个字符创建一个新对象。 (例如:“[”的对象,一个用于“{”,一个用于“l”,依此类推。)

知道我可能做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

您不能将字符串传递给setData;它需要一个数组。

你有一个字符串的原因是你没有将t中的datatype大写,因此jQuery不会将你的数据解释为JSON。