Показать сообщение отдельно
  #8 (permalink)  
Старый 05.12.2014, 11:04
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

treasury, вы не там описали скоп. Главный контроллер не трогайте, хендлеры работают во вью контроллере компонента. Вот как надо:
listeners: {
	itemclick: 'onDataviewSelectConfigure',
	select: 'onDataviewSelect',
	scope: 'controller'
}


Скоп описывается для всех листенеров оптом. НО! это касается только главного элемента, к которому подключен контроллер. В дочерних его компонентах скоп не нужен, поиск хендлеров идет в контроллере по умолчанию. Например:
Ext.define("PM.view.settings.process.Show", {
	extend: "Ext.panel.Panel",
	requires: [ "Ext.grid.column.Check" ],
	alias: "widget.settings-process-show",
	controller: "settings-process-show",
	viewModel: { type: "settings-process-showedit" },
	bind: { title: "{model.Name}" },
	items: [
		{ xtype: "gridpanel",
			bind: { store: "{subjectFields}" },
			columns: [
				{ xtype : "checkcolumn", text : "#Active", dataIndex : "Active", disabled: true },
				{ text: "#Name", dataIndex: "Name", flex: 1 }
			]
		},
		{ xtype: "docia-separator" },
		{ xtype: "container",
			layout: "hbox",
			align: "left",
			defaults: {
				width: 75,
				margin: "0 10 0 0"
			},
			items: [
				{ xtype: "button", text: "<< Back", handler: "goBack" },
				{ xtype: "button", text: "Edit", handler: "doEdit" }
			]
		}
	]
	
});


Обратите внимание на кнопки в конце класса. Их хендлеры автоматически ищутся в контроллере, скоп не указываем. Это относится почти к любому дочернему компоненту.
Ответить с цитированием