ExtJS MessageBox scheint nicht zu blockieren, wie Javascript alert (..) tut. Ich möchte ein Popup anzeigen, und dann anrufen und AJAX-Aufruf, auf dem es das Fenster schließt.ExtJS MessageBox blockiert nicht wie alert (..) tut
Wenn ich die Show Methode wie folgt dann rufen ...
//Alert Box :
var alertBox = Ext.create('Ext.window.MessageBox');
var config = {
title : 'Title',
closable: true,
msg: 'Message',
buttons: Ext.Msg.OK,
buttonText: { ok: EML.lang.buttons.ok },
modal: true
};
alertBox.show(config);
//callback
Ext.Ajax.request({
url: someURL,
method: 'POST',
callback: function (options, success, response) {
//do some stuff
self.up('window').destroy();
}
})
..no Popup angezeigt wird, aber das übergeordnete Fenster ist geschlossen.
Wenn ich einen Standard-Javascript Alarm verwende, wird der Alarm blockiert. Nach dem Klicken auf die Schaltfläche OK wird der Rückruf ausgeführt, nach dem das Fenster geschlossen wird.
//Alert Box :
alert('asdf')
//callback
Ext.Ajax.request({
url: someURL,
method: 'POST',
callback: function (options, success, response) {
//do some stuff
self.up('window').destroy();
}
})
- warum nicht blockiert MessageBox nicht?
- Was kann ich tun, um dieses Problem zu umgehen?
- muss die MessageBox irgendwie über das zu blockierende Elternfenster wissen?
Ja, ich habe es schließlich so umgesetzt. Es liest nicht sehr gut. Was passiert, wenn ich eine Situation habe, in der ich 5 Alarmfelder hintereinander habe? In Javascript hätte ich nur 5 Zeilen Alarm (..). In Extjs müsste ich 5 Nachrichtenboxen ineinander einbetten, die wie ein Durcheinander aussehen würden ... es sei denn, es gibt einen Weg mit Versprechen –
@OliverWatkins Ich habe meine Antwort geändert. – Alexander