#extjs #extjs5
#extjs #extjs5
Вопрос:
Я хочу убедиться, что определенный интерфейс загружен и отображается, прежде чем я смогу вызвать событие щелчка по кнопке, содержащейся в этом интерфейсе.
Я создаю интерфейс, используя следующий код :
var mainV2 = Ext.create('widget.main', {
renderTo: Ext.getBody(),
hideMode: 'visibility',
//Update
listeners: {
afterrender: function() {
Ext.getCmp('#somebutton').fireEvent('click');
}
}
});
mainV2.show();
И запуск события прямо под указанным кодом
Ext.getCmp('#idcheckItem').fireEvent('click');
Но, похоже, fireEvent не влияет на прослушиватель кнопок. Я думал, потому что вызов должен быть синхронным.
Мой вопрос в том, как убедиться mainV2
, что загрузилось, прежде чем запускать событие щелчка по кнопке, только когда mainV2
вызывается и отображается в первый раз?
Спасибо за большую помощь.
Ответ №1:
Вы можете создать метод afterRender в контроллере panels.
Эта скрипка запускает событие нажатия кнопок после отображения окна. Обязательно поместите метод afterRender в контроллер. Я столкнулся с некоторыми проблемами при размещении его непосредственно на панели.
Комментарии:
1. Возможно ли создать прослушиватель afterRender на панели mainV2?
2. Пожалуйста, смотрите Редактирование: я хочу, чтобы событие запускалось только при первом отображении панели.
3. afterRender находится на компоненте в классическом инструментарии и виджете в современном инструментарии. Итак, все, что расширяет эти методы, вы можете создать методом afterRender. afterRender вызывается только один раз, поэтому событие будет запущено только один раз.
4. Я не совсем понимаю, можно ли добавить afterRender в качестве слушателя (как показано в моем редактировании) вместо создания метода в контроллере, как вы упомянули?
5. В контейнере нет события afterrender, поэтому я не думаю, что это сработает. С учетом сказанного, после визуализации компонента этот метод вызывается фреймворком. Я думаю, это похоже на событие afterRender. Я не понимаю, почему то, что я предложил, не сработает. Можете ли вы поместить свой код в скрипку и показать мне, чего он не делает?