Hallo, meine Frage bezieht sich auf die Entwicklung im Backend (Ext.js): Ich habe ein Backend-Plugin geschrieben, welches (in Zusammenarbeit mit dem PHP-Controller) einen Rekord in der Datenbank erstellt. Untenstehend nötige Code-Ausschnitte: (view/aaa.js): … buttons: [{ id: ‚addGroupButton‘, text: ‚Create new group‘, iconCls: ‚sprite-plus-circle‘, handler: function(grid, record){ me.fireEvent(‚addItem‘); } }] … (view/add.js): … this.buttons = [{ text: ‚Save‘, scope: this, listeners: { click: function(button){ me.fireEvent(‚saveNewxxxItem‘,button); } } }, { text: ‚Cancel‘, scope: this, handler: this.close }]; … (controller/abc.js): … addControls: function() { var me = this; me.control({ ‚abc_view_group‘: { addItem: me.onAddaaa, }, ‚abc_view_add‘: { saveNewxxxItem: me.onSaveNewxxxItem, }, }); }, … onAddaaa: function(grid) { var me = this; var view = Ext.create(‚Shopware.apps.abc.view.Add‘,{ store: ‚aaa‘, }); view.show().alignTo(‚abc-Window‘,‚c-c‘); Ext.getCmp(‚storeKind‘).setValue(‚aaa‘); }, … onSaveNewxxxItem: function(button,store) { console.log(‚orray!‘); var me = this, item, window, itemStore; window = button.up(‚window‘); item = window.down(‚form‘).getValues(); switch (Ext.getCmp(‚storeKind‘).getValue()){ case(‚group‘): itemStore = me.getGroupView().getStore(); break; case(‚question‘): itemStore = me.getQuestionView().getStore(); break; case(‚answer‘): itemStore = me.getAnswerView().getStore(); break; } itemStore.add(item); window.close(); }, … Die Anwendung läuft einwandfrei, bis irgendein anderes Fenster im Backend geöffnet wird (z. B. beim Einfügen eines neuen Produktes). Wird ein neues Fenster geöffnet, wenn die Anwendung läuft, reagieren die Events vom PHP-Controller nicht mehr (z. B. es ist möglich, das Fenster zum Einfügen eines neuen Rekordes zu öffnen, das Event „saveNewxxxItem“ lässt sich aber nicht abrufen – der Rekord wird nicht gespeichert). Das Event „Klick auf den Button“ läuft – man kann darüber z. B. console.log abrufen. Dabei möchte ich noch darauf hinweisen, dass ich manche Code-Ausschnitte geändert habe (XXX), weil es sich dabei um vertrauliche Informationen handelte, die ich nicht an Dritte weitergeben darf. Das Problem liegt nicht im Code selbst, sondern vielmehr in der Logik und Funktionsweise. Der Code funktioniert einwandfrei (bis eine andere Anwendung geöffnet wird). Ich freue mich auf Ihre hilfreichen Antworten im Voraus!
Hallo, hast Du zwischenzeitlich eine Lösung gefunden? Ich habe genau das selbe Problem: das mit “me.control()” überwachte Event wird *genau* einmal abgefangen, dann nie wieder. Bin der Verzweiflung schon recht nahe…! Danke, Nils