我目前正在创建一个“向下钻取”样式的饼图,其中单击“切片”应该使用该切片中的数据更新饼图。
例如,想象一下按顶级类别显示销售额的电子商务报告:
衬衫 - 10,000 美元 裤子 - 8,000 美元 鞋子 - 3,500 美元
然后单击“衬衫”切片将显示有关“衬衫”类别中销售的详细信息:
T 恤 - 7,000 美元 Polo 衫 - 2,000 美元背心 - 1,000 美元
我在这里有一个使用返回随机信息的数据源的基本示例:
http://jsfiddle.net/informationarchitech/BrMeh/
Ext.onReady(function () {
var level = 1;
Ext.define('Report', {
extend: 'Ext.data.Model',
fields: [{
name: 'category',
type: 'string'
}, {
name: 'purchases',
type: 'string'
}],
});
var store = Ext.create('Ext.data.Store', {
id: 'store',
model: 'Report',
autoLoad: true,
proxy: {
type: 'jsonp',
url: 'http://informationarchitech.com/demos/rand.php',
reader: {
root: 'content',
}
}
});
Ext.create('Ext.chart.Chart', {
renderTo: Ext.getBody(),
width: 500,
height: 350,
animate: true,
store: store,
series: [{
listeners: {
itemmousedown: function (obj) {
level++;
store.getProxy().url = 'http://informationarchitech.com/demos/rand.php?parent=' + obj.storeItem.data['category'] + '&level=' + level;
store.load();
}
},
type: 'pie',
angleField: 'purchases',
showInLegend: true,
label: {
field: 'category',
display: 'rotate',
contrast: true,
font: '18px Arial'
}
}]
});
});
如您所见,单击切片会导致行为不一致。有时它似乎正确更新,但通常它似乎以某种方式合并或覆盖以前的数据。
我已经尝试了所有我能在图表、商店等上找到的“清除”、“更新”、“重置”方法,但我尝试过的任何方法似乎都没有成功地用新数据“完全”更新饼图。谁能告诉我我做错了什么?