Как определить слушателей для Ext.Msg? - PullRequest
0 голосов
/ 04 ноября 2019

Я определил некоторых слушателей на Ext.Msg, но их никогда не увольняют. Есть что-то, чего мне не хватает.

Ext.Msg.show({
    title:'Save Changes?',
    message: 'You are closing a tab that has unsaved changes. Would you like to save your changes?',
    buttons: Ext.Msg.YESNO,
    icon: Ext.Msg.QUESTION,
    defaultListenerScope: true,
    fn: function(btn) {
        if (btn === 'yes') {
            console.log('Yes pressed');
        } else if (btn === 'no') {
            console.log('No pressed');
        } else {
            console.log('Cancel pressed');
        }
    },
    listeners: {
        activate: function(mb){
            console.log('Height: '+mb.getHeight()+' Width: '+mb.getWidth());
        },
        afterrender: function(mb){
            console.log('Height: '+mb.getHeight()+' Width: '+mb.getWidth());
        } 
    }
});

1 Ответ

1 голос
/ 04 ноября 2019

Вы присоединяете конфигурацию слушателей к show(), который является методом Ext.MessageBox, который не имеет никакой конфигурации, такой как слушатели. Вы можете присоединить слушателей к MessageBox, а затем использовать метод show () для отображения окна сообщений. Ниже приведен фрагмент, который показывает поведение.

var myMsg = Ext.create('Ext.window.MessageBox', {        
   listeners: {
      activate: function(mb){
          console.log('Height: '+mb.getHeight()+' Width: '+mb.getWidth());
      },
      afterrender: function(mb){
          console.log('Height: '+mb.getHeight()+' Width: '+mb.getWidth());
      } 
   }
});

myMsg.show();

Вы можете найти рабочую скрипку здесь

...