假设我有一个组件,该组件需要向一个还不存在但将会存在的组件添加一个事件侦听器。假设它需要为这个尚未创建的组件的' beforeender '事件设置。
就像现在一样,不知道如何在ExtJS中做到这一点,我会这样做:
var wait = setInterval(function() {
var cmp = Ext.getCmp('myThing');
if (cmp) {
clearInterval(wait);
cmp.on('beforerender', function() {
// ... do something on render
});
}
}, 20);
我如何在Ext中做到这一点?
今天早上在某个随机的github存储库中找到了答案:
https://github.com/prettycode/Ext.exts/blob/master/Ext.latentEvent.js显然,Ext.ComponentManager
暴露了一个onAvailable
事件。当一个组件被创建时,它会通过Ext.ComponentManager
, onAvailable
会在给定的组件被添加后通知监听器。
有一个叫做"listeners"的配置,它的作用就是:
Ext.create('Ext.panel.Panel', {
title: 'myPanel',
....
listeners: {
'beforerender': function(panel, a, b) {
....
}
}
});