ExtJS: Присоединение событий Ext к компоненту до его существования - PullRequest
1 голос
/ 13 октября 2011

Допустим, у меня есть компонент, и этот компонент должен добавить прослушиватель событий для компонента, который еще не существует, но будет. Допустим, это необходимо для события '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 ]

2 голосов
/ 16 октября 2011

Нашел ответ в каком-то случайном репозитории github этим утром:

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

Очевидно, есть событие onAvailable, которое выставляет Ext.ComponentManager.Когда компонент создан, он проходит через Ext.ComponentManager, и onAvailable сообщит слушателям после добавления указанных компонентов.

1 голос
/ 14 октября 2011

Существует конфигурация под названием "listeners", которая делает именно это:

Ext.create('Ext.panel.Panel', {
    title: 'myPanel',
    ....
    listeners: {
        'beforerender': function(panel, a, b) {
         ....
         }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...