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

时间:2011-10-13 16:59:12

标签: javascript events extjs

假设我有一个组件,这个组件需要向一个尚不存在但仍然存在的组件添加一个事件监听器。让我们说它需要为这个尚未创建的组件的'beforerender'事件。

就像现在一样,在不知道如何在ExtJS中执行此操作的情况下,我会做这样的事情:

var wait = setInterval(function() {
    var cmp = Ext.getCmp('myThing');

    if (cmp) {
        clearInterval(wait);
        cmp.on('beforerender', function() {
            // ... do something on render
        });
    }
}, 20);

我如何在Ext?

中执行此操作

2 个答案:

答案 0 :(得分:2)

今天早上在一些随机的github存储库中找到答案:

https://github.com/prettycode/Ext.exts/blob/master/Ext.latentEvent.js

显然,onAvailable会发生Ext.ComponentManager事件。创建组件后,它会通过Ext.ComponentManager,而onAvailable会在添加了给定组件后让听众知道。

答案 1 :(得分:1)

有一个叫做“监听器”的配置就是这样做的:

Ext.create('Ext.panel.Panel', {
    title: 'myPanel',
    ....
    listeners: {
        'beforerender': function(panel, a, b) {
         ....
         }
    }
});