我似乎遇到了传说中的问题
当数据在stor中更改时,饼图会更新,但图例不会更新。
但令我惊讶的是,当我们重置饼图时,它会更新一次,就像我在交互中使用重置选项一样。
我不知道为什么传奇没有第一次更新的确切问题。
当我为商店使用硬代码值时,传说在第一个版本处得到更新。对于动态值,只有图例没有正式更新。
请参阅我的代码的某些部分,
PieChart = new Ext.chart.Chart( {
cls: 'pie1',
theme: 'Demo',
store: store1
shadow: true,
animate: true,
legend: {
position: 'top'
// dock: false
},
interactions: [ {
type: 'reset',
confirm: true
}],
series:
[ {
type: 'pie',
renderer: function(sprite, storeItem, barAttr, m, store11) {
barAttr.fill = colors1[m % colors1.length];
return barAttr;
},
field: 'data1',
showInLegend: true,
highlight: false,
donut: 15,
listeners: {
'labelOverflow': function(label, item) {
item.useCallout = true;
}
},
callouts: {
renderer: function(callout, storeItem) {
callout.label.setAttributes( {
text: storeItem.get('Horizontal')
}, true);
},
filter: function() {
return false;
},
box: {
//no config here.
},
lines: {
'stroke-width': 2,
offsetFromViz: 10
},
label: {
font: 'italic 14px Arial'
},
styles: {
font: '14px Arial'
}
},
label: {
field: 'Horizontal',
display: 'rotate',
font: '5px Arial'
}
}]
有什么想法吗?
答案 0 :(得分:0)
我将数据保存到商店
时使用以下代码解决了这个问题var hrPieChart = hrPanel.items.getAt(0);
hrPieChart.legend = new Ext.chart.Legend( {
chart: hrPieChart,
position: 'top',
dock: false
});
var fieldNames = [];
hStore.each(function(rec) {
fieldNames.push(rec.get('data1'));
});
hrPieChart.series.getAt(0).yField = fieldNames;
hrPieChart.redraw(false);
答案 1 :(得分:0)
要在Sencha Touch(图表v1.0.0)中更新图表的图例,您只需加载商店,然后在回调中执行updateStore()
。
var updateLegend = function(){
store.getProxy.url = 'someData.json'; // Omit if new data is from original source.
store.load({
callback: function(records, options, success){
if (success === true){
var legend = chart.legend;
legend.view.updateStore();
}
}
});
}