0
ExtJS 4.2.1에 이상한 문제가 있습니다.다른보기에서 이벤트 (패널 클릭)를 잡는 컨트롤러의 리스너
나는 청취자가 볼 수없는보기에서 이벤트를 잡는 컨트롤러가 있습니다. 여기
말했다의 컨트롤러 :Ext.define('Customer_Portal_UI.controller.NavigationMenu', {
extend: 'Ext.app.Controller',
init: function() {
this.control({
'panel': {
render: function (panel) {
panel.body.on('click', function (panel, e) {
alert('onclick');
});
}
}
});
}
});
그것은 '컨트롤'이보기 :
Ext.define('Customer_Portal_UI.view.NavigationMenu', {
extend: 'Ext.form.Panel',
alias: 'widget.navigationmenu',
region: 'west',
layout: 'fit',
ui: 'cssmenu',
loader: {
autoLoad: true,
url: '/resources/notloggedin.html'
}
});
그러나 그것은 또한이보기에서 패널 클릭을 잡는다 :
Ext.define("Customer_Portal_UI.view.MainContent", {
extend: 'Ext.form.Panel',
alias: 'widget.maincontent',
region: 'center',
layout: 'card',
border: false,
activeItem: 0,
requires: ['Ext.grid.Panel'],
initComponent: function() {
this.items = [
{
xtype: 'panel',
title: ''
},
{
xtype: 'gridpanel',
id: 'contactlistgrid',
store: Ext.data.StoreManager.lookup('contactStore'),
columns: [
....
],
features: [{
ftype: 'grouping',
groupHeaderTpl: ['{columnName}: {name} - ({rows.length} employees)'],
hideGroupedHeader: true,
startCollapsed: false
}],
viewConfig: { id: 'contactlistgridview' }
},
{
xtype: 'gridpanel',
id: 'caselistgrid',
store: Ext.data.StoreManager.lookup('caseStore'),
columns: [
{ text: 'Title', dataIndex: 'title' },
{ text: 'Description', dataIndex: 'description' },
{ text: 'Ticket number', dataIndex: 'ticketnumber' }
],
viewConfig: { id: 'caselistgridview' }
}
]
this.callParent(arguments);
}
});
당신은 어떤을 보는가 왜 이렇게할만한 이유가 있을까요? panel
실제로 클릭 한 패널이며 문서 본문이 아니며 이유를 설명 할 수 있습니다. 어떤 말아야 그냥 MainContent
보기에서, 다른 패널에서 클릭 잡는하지에있어
주 ...
감사합니다.
가 그럼 난 '패널'에 대한 '클릭'을들을 수 있었다 내 컨트롤러 내 않고 (뷰 내에서 하나 개의 패널있다) :
선택기가 '패널'이라고 말하면 패널 (또는 하위 클래스) 인 모든 구성 요소와 일치하게됩니다. 관련성이 높은 항목 만 일치 시키려면 선택기를 세분화해야합니다. –
@EvanTrimboli 의견을 보내 주셔서 감사합니다. –
@EvanTrimboli 컨트롤러가 다른보기에서 '패널'의 이벤트를 잡는 이유를 이해할 수 없습니다. 컨트롤러는 이것을 통해 설계 작업을 수행하며 단순히 조직 목적을 위해서만 다른 물리적 컨트롤러 파일에서 로직을 분리합니다. 감사. –