Definieren Sie die Zuhörer in ExtJS controller
Hab ich die tabpanel
- es ist die main
Formular (Ansicht).
In diesem tabpanel
definiere ich die verschiedenen tabs - xtype:'panel'
.
So, ich habe eine main
(controller) , main
anzeigen und einige Registerkarten-Ansichten.
Die Registerkarte Ansichten, auf die verwiesen werden in main
anzeigen.
Möchte ich definieren Zuhörer activate
Veranstaltung einiger Kindes panel
im main
controller.
Wie kann ich das tun?
den main
controller :
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 () {
}
});
Den main
anzeigen:
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);
}
});
Dem Kind panel
RequisitesApartment (view):
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);
}
});
InformationsquelleAutor Oleg | 2012-09-21
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Registrieren direkt als Kontrolle innerhalb der zuständigen controller
Hier ist ein Beispiel mit einer Abfrage. Für Sie sicher, nur müssen Sie die Abfrage, aber ich denke, es ist ein gutes Beispiel. Die custom cfg Eigenschaft ident machen Sie es einfach finden Sie jede Registerkarte. Wie im Beispiel unten müssen Sie angeben tabConfig in jedem panel und definieren Sie die ident-es.
Andere Möglichkeit ist die Verwendung von css-id ' s abgefragt werden kann wie
'#my-name'
aber ich empfehle die Verwendung eines benutzerdefinierten man wie im obigen Beispielxtype: 'RequisitesApartment'
? Das Beispiel oben kann kopiert werden in eine der Beispiel-code-Felder innerhalb der sencha-API.Gut, sollte ich diesen code in "main" (controller):
War das problem in falschen Selektor, die ich verwendet.
Der korrekte Selektor ist :
Gibt 'ApartmentData'(definieren, wie ein
alias: 'widget.ApartmentData'
) - ist das 'Fenster' xtype -die wichtigste form.tabpanel - panel mit Registerkarten im 'Fenster' und 'apartServList'(definieren wie
alias: 'widget.RequisitesApartment'
) - das einige-panel.Danke für sra!
apartServList
kann nicht gefunden werden in deinem Beispiel-code. So wird es ein bisschen schwer für andere, warum diese Antwort richtig ist. Mich eingeschlossen. Vielleicht könnten Sie Bearbeiten Ihre Frage.die richtige Sache zu tun ist, um pass eine Konfiguration Objekt an die member-Funktion Kontrolle in controller init Funktion. Aus Sencha-Dokumentation : Die control-Funktion macht es leicht, hören Sie Ereignisse auf Ihrem view-Klassen und etwas Unternehmen, mit einem handler-Funktion.
Ein Beispiel, gerade von extjs docs:
Hoffe, das hilft.
Cheers