我想要在後臺模式下下載圖表,但我不知道圖表何時完全繪製,並且所有動畫都已完成。例如:在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);
當我點擊按鈕 「下載榜」。圖表正確下載,但當事件「afterrender」被觸發時,我得到錯誤或下載的文件爲空(更準確地說圖像是透明的)。發生這種情況是因爲圖表沒有完全繪製。
我描述我的情況。我在頁面上有一些圖表,他們有一些設置可以顯示在這個頁面上。但它是設置不完整。我想在我的服務器上發送圖表(圖像base64數據)的數據。這是數據應該是充分的(例如設置圖像的大小,然後顯示在頁面上(300x300 - 頁面 - > 600x600 - 發送到服務器),並添加一些其他信息不適合頁面(圖例和其他)) 。
即我想在我的服務器上發送多個圖表,其中包含單個請求的完整設置,其中將包含圖表(base64數據)的所有完整數據。我應該知道什麼時候所有的圖表完全在後臺模式下畫出來,我可以發送數據到服務器。
當圖表完成繪製和動畫完成時,是否有任何事件觸發?
感謝您的回答。
'afterShow'僅指組件本身,它沒有對圖表動畫的任何影響。 –
我知道背景模式中的下載圖表不完全正確。我在上面的問題中描述了我的情況。我不知道我應該爲這種情況使用什麼樣的設計。 –