2016-11-23 65 views
0

我想要在後臺模式下下載圖表,但我不知道圖表何時完全繪製,並且所有動畫都已完成。例如:在ext.js 6.x中完成圖表完成繪製和動畫完成後,我可以使用哪個事件?

var chart = Ext.create({ 
    xtype: 'polar', 
    width: 400, 
    height: 400, 
    store: { 
     fields: ['Name', 'Data'], 
     data: [ 
      { 'Name': 'Price',  'Data': 100 }, 
      { 'Name': 'Revenue %', 'Data': 100 }, 
      { 'Name': 'Growth %', 'Data': 100 }, 
      { 'Name': 'Product %', 'Data': 100 }, 
      { 'Name': 'Market %', 'Data': 100 } 
     ] 
    }, 
    axes: [{ 
     type: 'category', 
     position: 'angular', 
     grid: true 
    }, { 
     type: 'numeric', 
     position: 'radial', 
     grid: true 
    }], 
    series: [{ 
     type: 'radar', 
     xField: 'Name', 
     yField: 'Data', 
    }], 
    listeners: { 
     afterrender: function() { 
      chart.download(); // not work 
     } 
    } 
}); 

Ext.create({ 
    xtype: 'panel', 
    renderTo: Ext.getBody(), 
    dockedItems: [{ 
     xtype: 'toolbar', 
     dock: 'top', 
     items: [{ 
      xtype: 'button', 
      text: 'download chart', 
      handler: function() { 
       chart.download(); // works correctly 
      } 
     }] 
    }] 
}); 

var renderCt = document.createElement('div'); 
document.body.appendChild(renderCt); 
chart.render(renderCt); 

Sencha Fiddle

當我點擊按鈕 「下載榜」。圖表正確下載,但當事件「afterrender」被觸發時,我得到錯誤或下載的文件爲空(更準確地說圖像是透明的)。發生這種情況是因爲圖表沒有完全繪製。

我描述我的情況。我在頁面上有一些圖表,他們有一些設置可以顯示在這個頁面上。但它是設置不完整。我想在我的服務器上發送圖表(圖像base64數據)的數據。這是數據應該是充分的(例如設置圖像的大小,然後顯示在頁面上(300x300 - 頁面 - > 600x600 - 發送到服務器),並添加一些其他信息不適合頁面(圖例和其他)) 。

即我想在我的服務器上發送多個圖表,其中包含單個請求的完整設置,其中將包含圖表(base64數據)的所有完整數據。我應該知道什麼時候所有的圖表完全在後臺模式下畫出來,我可以發送數據到服務器。

當圖表完成繪製和動畫完成時,是否有任何事件觸發?

感謝您的回答。

回答