2013-11-26 16 views
3

我正在为一个图表动态地加载一个商店,我的问题是当新图表加载时,旧的图表(条/线)仍然显示在新图表的后面。 这是我如何删除旧的图表:如何在Extjs中完全清除图表?

var removeChart = function (chart) { 
      var series = chart.series.items, surface = chart.surface, 
       length = series.length, len = surface.groups.keys.length, 
       array = []; 
      for (var i = 0; i < length; i++) 
       array = Ext.Array.merge(array, series[i].group.keys); 
      chart.series.clear(); 
      for (var j = 0; j < array.length; j++){ 
       surface.items.getByKey(array[j]).destroy(); 
       }; 
      for (var t = 0; t < len; t++) 
       surface.groups.items[t].destroy(); 
     }; 

然后我打电话removeChart(chart);最后加入新系列的配置与chart.redraw();

完成我在做什么错了,请?

+2

你究竟“动态加载商店”?这可能是造成问题的部分,你不应该为了改变图表的数据而走得这么低级别...... – rixo

+1

我有同样的问题。 'store.load()'正在加载商店,它正在绘制新行,但旧行仍然可见! 商店装的很好,我可以看到它有记录,他们没事。很显然,图表正在吸引他们。但它忘记删除旧的线路。 –

回答

2

你不需要删除图表来完成你想要的。

只需重新加载商店,添加系列并重画。

当你这样做,你也会得到一个很酷的动画(如果你想动画)。