我有一张java地图。我把它转换成了json字符串,我得到了这样的东西:
{"NEW ZEALAND":"111111111111111","CHAD":"1","MOROCCO":"111","LATVIA":"11"}
现在我想在商店中使用它,然后在下面的代码中使用它,但它不起作用。我没有错误只是没有显示。
var obj = Ext.Ajax.request({
url: App.rootPath + '/controller/home/dashboard/test.json',
method:'GET',
success: function(response) {
return Ext.JSON.decode(response.responseText);
}
});
var store2 = Ext.create('Ext.data.Store', {
model: 'PopulationPoint',
data: obj
});
Ext.create('Ext.chart.Chart', {
renderTo: 'infos2',
width: 500,
height: 300,
store: store2,
series: [
{
type: 'pie',
field: 'population',
label: {
field: 'state',
display: 'rotate',
font: '12px Arial'
}
}
]
});
答案 0 :(得分:1)
AJAX请求是异步的。因此,用于初始化数据的obj
变量尚不包含您的数据。
一个选项是创建store2
变量并直接在AJAX请求的成功回调中创建图表。
更清洁的选项是使用代理配置商店以加载网址,并在回调中创建图表。
修改强>
JSON响应不包含模型中声明的字段(在注释中发送)。更新JSON以返回格式正确的模型,图表应该如this fiddle中所示。 JSON应该看起来像
[
{
"state" : "New Zealand",
"population" : 111111111
},
{
"state" : "Chad",
"population" : 1
}
]