有没有办法在加载时屏蔽图表? LineChart有'afterrender'事件,商店有'加载',但它不是我需要的。 我看到他们和最终的图表渲染之间有足够的延迟。 TNX
var chart = new Ext.chart.LineChart({
id: 'chart1',
store: store,
xField: 'name',
yField: 'visits',
listeners: {
'afterrender': function() {
Ext.getCmp('chart1').getEl().unmask();
}
}
});
答案 0 :(得分:1)
为什么你会在该组件的事件中使用getCmp?该函数有参数:
listeners: {
afterrender: function(chart) {
chart.getEl().unmask();
}
}
另外,请注意内存泄漏,因为这会将侦听器保留在此图表上,直到它被销毁但它只呈现一次
listeners : {
afterrender : {
single : true,
fn : function(chart) {
chart.getEl().unmask();
}
}
}
使用single = true时,它会在第一次触发事件后自行删除。您还可以放置延迟并传入一个数字(以毫秒为单位)来延迟触发,缓冲(不是后续处理)并传入一个数字(以毫秒为单位),并且所有相同的事件在毫秒数内将被放入一个事件中射击,范围改变功能的范围。其他一些,但那些是前4个选项。
答案 1 :(得分:0)
尝试使用render或beforerender事件挂钩。
答案 2 :(得分:0)
我认为这将解决您的问题
store.load({
scope: this,
callback: function(records, operation, success) {
Ext.getCmp('chart1').getEl().unmask();
}
});
否则您可以使用图表的activate事件来取消屏蔽它。