填充商店时出现extjs错误

时间:2015-05-28 13:47:11

标签: json extjs charts store

我有一张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'
      }
    }
  ]
});

enter image description here

1 个答案:

答案 0 :(得分:1)

AJAX请求是异步的。因此,用于初始化数据的obj变量尚不包含您的数据。

一个选项是创建store2变量并直接在AJAX请求的成功回调中创建图表。

更清洁的选项是使用代理配置商店以加载网址,并在回调中创建图表。

修改

JSON响应不包含模型中声明的字段(在注释中发送)。更新JSON以返回格式正确的模型,图表应该如this fiddle中所示。 JSON应该看起来像

[
    {
      "state" : "New Zealand",
      "population" : 111111111
    },
    {
      "state" : "Chad",
      "population" : 1
    }
]