ExtJS:在组件存在之前附加Ext事件



假设我有一个组件,该组件需要向一个还不存在但将会存在的组件添加一个事件侦听器。假设它需要为这个尚未创建的组件的' 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) {
         ....
         }
    }
});

最新更新