Показать сообщение отдельно
  #1 (permalink)  
Старый 24.10.2016, 04:42
Аватар для Sogl
Аспирант
Отправить личное сообщение для Sogl Посмотреть профиль Найти все сообщения от Sogl
 
Регистрация: 12.05.2016
Сообщений: 95

Прослушивание событий между компонентами разных view
Всем привет!

Как обычно слушать события между контроллерами я уже знаю. Прописываем id для контроллера:
id: 'employees-window1',


Там же вызываем событие:
onCancelClick: function () {
    this.fireEvent('close');
},


В нужном контроллере слушаем события заданного контроллера (селектор по id):
listen : {
        controller : {
            '#employees-window1' : {
                close : 'onCancelClick'
            }
        }
    },


Это работает если у нас 2 контроллера объявлены. Но по идее нам 2й контроллер и не нужен, т к мы можем вызвать событие и на обработчике кнопки:
buttons: [{
    text: 'Сохранить',
    handler: 'onSaveClick'
}, {
    text: 'Отмена',
    handler: function() {
        this.fireEvent('close');
    }
}]


Но вот как слушать событие компонента? в данном случае формы внутри Window.

Нашел, что можно прописывать в `listen` еще и `component`:
http://docs.sencha.com/extjs/6.2.0/m...tml#cfg-listen

Как только не пробовал с заданием id для window, например, так:
listen : {
        component : {
            '#employees-window1 > button[text=Отмена]' : {
                close : 'onCancelClick'
            }
        }
    },


Не работает!
Вообще возможно так делать как я описал?
Ответить с цитированием