#javascript #events #extjs
#javascript #Мероприятия #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?
Ответ №1:
Сегодня утром нашел ответ в каком-то случайном репозитории github:
https://github.com/prettycode/Ext.exts/blob/master/Ext.latentEvent.js
По-видимому, есть onAvailable
событие, которое Ext.ComponentManager
раскрывает. Когда компонент создается, он проходит Ext.ComponentManager
и onAvailable
сообщает слушателям после добавления заданных компонентов.
Ответ №2:
Существует конфигурация под названием «слушатели», которая делает именно это:
Ext.create('Ext.panel.Panel', {
title: 'myPanel',
....
listeners: {
'beforerender': function(panel, a, b) {
....
}
}
});
Комментарии:
1. Хм, я думаю, вы немного упускаете суть. Приношу свои извинения за то, что не был понятен. Компоненту на странице необходимо прослушать событие для другого компонента, который еще не создан.
![]()