Программирование, управляемое событиями, в Ext JS

Я работаю над приложением, в котором на хост загружаются разные виджеты из разных плагинов, и они не знают друг о друге. Итак, я хочу использовать EDP ​​и в одном виджете вызвать событие (например, UserDeleted), а в другом виджете подписаться на это событие (знаменитый издатель/подписчик, или, давайте конкретнее, шаблон наблюдателя).

В jQuery для этого я использую методы trigger() и bind(). Однако я не могу найти ничего эквивалентного в Ext JS. Я что-то пропустил? Или есть ли другой шаблон для создания слабосвязанных виджетов пользовательского интерфейса в Ext JS?


person Saeed Neamati    schedule 17.10.2012    source источник


Ответы (2)


Если ваши виджеты не знают друг о друге, вам нужно использовать шаблон посредника.

И кажется, что Ext.util.Observable — это то, что вы находясь в поиске.

person Rafał Rutkowski    schedule 17.10.2012

Начиная с ExtJS 4.x Sencha представила концепцию контроллеров, которые прослушивают события в чистом систематическом шаблоне приложения MVC. В этой схеме ваши компоненты будут запускать события (встроенные или пользовательские), а контроллеры будут реагировать на эти события.

Чтобы запустить пользовательское событие, вы можете использовать метод fireEvent в классе Observable, который наследуется практически всеми другими классами ExtJS.

person dbrin    schedule 17.10.2012
comment
Можете ли вы показать мне пример реализации? Документация действительно отстой. - person Saeed Neamati; 18.10.2012
comment
Документация не отстой. Это очень хорошо. Ознакомьтесь с руководствами. Вы получите всю необходимую помощь для настройки приложения MVC в Ext. - person Varun Achar; 18.10.2012