Событие загрузки вкладки ExtJS AJAX TabPanel?

#javascript #ajax #extjs #dom-events #tabpanel

#javascript #ajax #extjs #dom-события #панель вкладок

Вопрос:

Есть ли какой-либо способ добавить прослушиватель событий к событию загрузки / обновления панели вкладок на основе ajax в ExtJS v3.3.1? Мне нужно событие, которое срабатывает после извлечения содержимого вкладки и полного отображения, а не сразу после выбора / активации вкладки и отображения счетчика загрузки.

Я думал, что смогу добавить это событие к объекту Ext.Updater, возвращаемому getUpdater() методом tabpanel, т.Е.:

 myTabs.getUpdater().on('update', function()
{
    console.log('tab loaded');
});
  

Но, похоже, это не работает. Есть идеи?

Редактировать: Вот моя полная реализация, чтобы было легче понять, что я пытаюсь сделать:

 var myTabs = new Ext.TabPanel( 
{ 
    id : 'rec_tabs', 
    activeTab : 0,    
    enableTabScroll : true, 
    padding : 5, 
    autoWidth : false, 
    autoHeight : true, 
    border : false, 
    plain : true, 
    defaults : { autoHeight: true }, 
    items : 
    [ 
        { title : 'Tab #1',  autoLoad : { url : 'tab1_content.php', scripts : true } }, 
        ... 
    ] 
}); 

myTabs.render('tab_div'); 

myTabs.getUpdater().on('update', function() 
{ 
    console.log('tab loaded'); 
});  
  

Ответ №1:

Наконец-то разобрался. Я не понял, что свойства объекта конфигурации «Автозагрузка» для каждого элемента TabPanel на самом деле просто используются в качестве параметров для метода Ext.Updater.update(). Итак, все, что мне нужно было сделать, это вместе с параметрами «url» и «scripts» определить свойство «обратный вызов» как функцию, которая будет выполняться, когда содержимое вкладки будет загружено в ее тело, и все готово.

Ответ №2:

Вы пробовали это?

 myTabs.on("afterrender", function() {
    console.log('tab loaded');
});
  

Комментарии:

1. Да, в этом тоже нет ничего хорошего, это срабатывает сразу после открытия вкладки и отображения счетчика.

2. Существует 5 вкладок, все они добавлены на панель с помощью объекта конфигурации автоматической загрузки, задающего URL-адрес, с которого извлекается содержимое, и имеют свойство «scripts», равное true.