2013-11-26 13 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

你不需要刪除圖表來完成你想要的。

只需重新加載商店,添加系列並重畫。

當你這樣做,你也會得到一個很酷的動畫(如果你想動畫)。