バックグラウンドモードでチャートをダウンロードしたいのですが、チャートが完全に描画され、すべてのアニメーションが終了したときはわかりません。たとえば、次のようにグラフが完全に描画され、アニメーションが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 - サーバーに送信)、ページに表示されない他の情報を追加します(凡例など)。 。
私は私のサーバー上で、1つのリクエストで完全な設定で複数のチャートを送信したいと思います。チャートのすべてのフルデータ(base64データ)が含まれます。すべてのチャートがバックグラウンドモードで完全に描画され、データをサーバーに送信できるかどうかを知る必要があります。
グラフが完全に描画され、アニメーションが終了したときに発生するイベントはありますか?
ご回答ありがとうございます。
をチェックアウト 'afterShow'が唯一のコンポーネント自体を指し、それはありません。チャートアニメーションへの影響。 –
バックグラウンドモードでのダウンロードチャートが正確ではないことは知っています。私は上記の質問に私のケースを説明しました。私はこのケースでどんなデザインを使うべきか分かりません。 –