Mam "tabpanel" - to "główna" forma (widok). W tym "tabpanelu" definiuję różne zakładki - xtype "panel". Mam więc jeden widok "główny" (kontroler), "główny" i kilka widoków kart. Widoki kart są przywoływane w widoku głównym.Definiowanie słuchaczy w kontrolerze ExtJS
Chcę zdefiniować odsłuchiwanie zdarzenia "aktywuj" w panelu dziecka w kontrolerze głównym. Jak mogę to zrobić?
Określenie 'główny' Kontroler:
Ext.define('KP.controller.account.apartment.Main', {
extend: 'Ext.app.Controller',
views: ['account.apartment.Main',
'account.apartment.Requisites'
],
models: ['account.apartment.Requisites'
],
stores: ['account.apartment.Requisites'
],
init: function() {
}
});
Określenie 'główny' Wyświetl:
Ext.define('KP.view.account.apartment.Main', {
extend: 'Ext.window.Window',
alias: 'widget.ApartmentData',
height: 566,
width: 950,
activeItem: 0,
layout: {
type: 'fit'
},
autoShow: false,
initComponent: function() {
var me = this;
Ext.applyIf(me, {
items: [
{
xtype: 'tabpanel',
activeTab: 0,
deferredRender: true,
items: [
{
xtype: 'RequisitesApartment'
}
]
}
]
});
me.callParent(arguments);
}
});
Panel dziecko RequisitesApartment (Wygląd):
Ext.define('KP.view.account.apartment.Requisites', {
extend: 'Ext.panel.Panel',
alias: 'widget.RequisitesApartment',
id: 'panel_accountrequisites',
height: 350,
width: 1124,
autoScroll: true,
layout: {
type: 'fit'
},
listeners: {
activate: function() {
....load data....
...this listeners I want to push in 'main' controller...
}
},
initComponent: function() {
var me = this;
var grid_store = Ext.create('KP.store.account.apartment.Requisites');
Ext.applyIf(me, {
dockedItems: [
{
xtype: 'gridpanel',
height: 260,
autoScroll: true,
dock: 'bottom',
store: grid_store,
id: 'r_gridFlatParams',
forceFit: true,
columns: [
...some columns....
],
viewConfig: {
}
}
]
});
me.callParent(arguments);
}
});
Dobrze, 'apartServList' nie można znaleźć w przykładowym kodem Więc ja t będzie nieco trudny do śledzenia dla innych, dlaczego jest to poprawna odpowiedź. Ja włączyłem. Może mógłbyś edytować swoje pytanie. – sra
Należy pamiętać, że mój przykład wskazuje na przycisk tabulatora, a nie na kartę. O ile wiem, zdarzenie aktywujące zakładki nie jest przepuszczane przez panel, czyż nie? – sra
Edytowałem swoją odpowiedź, w 'panelu' xtype ma wydarzenie "aktywuj". – Oleg