我需要使用Morris Charts绘制动态数组图。该数组是一个动态矩形数组(具有可变数量的列),如下所示:
我尝试使用JSON将其传递给Morris Charts。这是我的代码:
function SHOWGRAPH() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/samplepage.aspx/SHOW_GRAPH",
data: "",
dataType: "json",
success: function(data) {
for (var i = 0; i < data.d.length; i++) {
Morris.Area({
element: 'myfirstchart',
data:data.d,
xkey: data.d[0],
ykeys: [data.d[i]],
hideHover: 'auto',
resize: true,
})
};
}
});
}
由于数据集不匹配,我收到错误:
TypeError: a is undefined
我想问一下是否有人知道如何将矩形阵列正确传递给Morris Chart。通常,我只使用一个类来传递数据。但是,在这种情况下,我需要传递的数据结构是动态的。
提前致谢。
答案 0 :(得分:2)
在这里,您似乎没有在POST
请求正文中传递任何数据。如果这不需要请求正文,您应该考虑将其作为GET
请求。无论哪种方式,如果响应是JSON格式,如下所示:
{ "data": {
"d": {
[ a: []],
[ a: []],
[ a: []],
[ a: []],
[ a: []]
}
}
那么理想情况下你应该循环两次:
data.d.forEach(function(data) {
Morris.Area({
element: 'myfirstchart',
data:data,
xkey: data.a.forEach(function(item){
//Do what you want with this array
}),
ykeys: [data],
hideHover: 'auto',
resize: true,
})
};
});