Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2012, 18:00
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

Обмен event'ами между item'ами контейнера
Ext.define("MainPanel", {
	extend: "Ext.panel.Panel",

	initComponent: function() {
		this.border = 2;

		this.buttons = [{
			text: "TestEvent",
			scope: this,
			handler: function() {
				this.fireEvent("TestEvent");
			}
		}];

		this.callParent(arguments);

		this.addListener("TestEvent", this.onTestEvent, this);
	},

	onTestEvent: function() {
		if(window.console && console.log)
			console.log("MainPanel.onTestEvent() (%s)", this.title);
	}
});

Ext.define("InnerPanel", {
	extend: "Ext.panel.Panel",

	initComponent: function() {
		this.border = 2;
		
		this.buttons = [{
			text: "TestEvent",
			scope: this,
			handler: function() {
				this.fireEvent("TestEvent");
			}
		}];
		
		this.bubbleEvents = this.bubbleEvents.concat([
			"TestEvent"
		]);
		
		this.callParent(arguments);

		this.on({
			scope: this,
			render: function() {
				this.ownerCt.on({
					scope: this,
					TestEvent: this.onTestEvent
				});
			}
		});
	},

	onTestEvent: function() {
		if(window.console && console.log)
			console.log("InnerPanel.onTestEvent() (%s)", this.title);
	}
});

Ext.onReady(function() {
	Ext.QuickTips.init();

	Ext.create("MainPanel",{
		title: "MainPanel",
		items: [
			Ext.create("InnerPanel", {
				title: "InnerPanel# 1"
			}),
			Ext.create("InnerPanel", {
				title: "InnerPanel# 2"
			})
		],
		renderTo: Ext.getBody()
	});
});

Для одного уровня вложенности более-менее выглядит по-людськи и работает. А, вот, если "...яйцо в утке, утка в зайце, заяц в медведе..." - тут и смерть настает... Конечно, можно завести один общий bus и гонять по нему все, но, как-то хочется, так сказать, инкапсулировать все внутри... Any ideas?

Последний раз редактировалось Ex_Soft, 10.04.2012 в 10:37.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обмен сообщениями между 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