Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2017, 23:21
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Обмен событиями между видами
Как сделать обмен событиями между двумя независимыми видами?

Например в одном виде мы сделали операцию над пользователями. В итоге часть пользователей больше тут не отображаются. Но они должны будут отображаться в другом виде. Получается этот другой вид нужно обновить, чтобы он загрузил этих пользователей.

В контроллере второго вида я сделал подписку на глобальное событие:

listen: {
		controller: {
			"*": {
				"preTrialStage.sendApplicationToTrial": "onSendApplicationToTrial"
			}
		}
	},

	onSendApplicationToTrial: function() {
		this.getView().getStore().reload();
	},


А в первом виде (точнее в его контроллере) я генерирую это событие.

Но listen является приватным свойством в Ext.app.ViewController и по идее его использовать нельзя.

Как быть в этом случае?
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2017, 10:05
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

На ум приходит идея сделать глобальный стор для пользователей и чейнед сторы для отображения избранных записей в разных вьюшках. Тогда все будет синхронизироваться автоматом. Можете подписаться на события главного стора если надо.
Ответить с цитированием
  #3 (permalink)  
Старый 16.03.2017, 14:12
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

сторы разные. Объединить не удасться.
Подписка на сторе-домен нельзя, listen как я уже сказал приватный. Надо от него как-то легально избавиться.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #4 (permalink)  
Старый 16.03.2017, 15:29
Аватар для kolka
Кандидат Javascript-наук
Отправить личное сообщение для kolka Посмотреть профиль Найти все сообщения от kolka
 
Регистрация: 07.06.2010
Сообщений: 146

А глобально ?
Ext.define('Fiddle.controller.Main', {
    extend : 'Ext.app.Controller',
    
    listen : {
        global : {
            customevent : 'onCustomEvent'
        }
    },
    
    onCustomEvent : function(arg1, arg2) {
        console.log('global event domain', arg1, arg2);
    }
});


Ext.application({
    name : 'Fiddle',
    
    controllers : [
        'Main'
    ],

    launch : function() {
        new Ext.button.Button({
            renderTo : Ext.getBody(),
            text     : 'Fire customevent',
            handler  : function() {
                Ext.GlobalEvents.fireEvent('customevent', 'foo', 'bar');
            }
        });
        
        Ext.GlobalEvents.on('customevent', function(arg1, arg2) {
            console.log('on', arg1, arg2);
        });
    }
});
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2017, 23:09
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Интересный класс Ext.GlobalEvents
Ну он по идее тут спасет положение, чтобы не пользоваться listen, которого нет в документации
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обмен сообщениями между js загруженной страницы и расширением для браузера prihod Events/DOM/Window 6 11.12.2011 21:51
"правильный" обмен данными между окнами igrok Events/DOM/Window 1 20.05.2011 18:04
Обмен данными между доменами Armen AJAX и COMET 27 02.03.2011 13:36
Обмен данными между страницами sergmick Общие вопросы Javascript 0 10.10.2009 18:27
Обмен содержимым между ячейками таблицы. Forsaken Элементы интерфейса 8 02.12.2008 20:23