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" }
]
}
]
});
Обратите внимание на кнопки в конце класса. Их хендлеры автоматически ищутся в контроллере, скоп не указываем. Это относится почти к любому дочернему компоненту.