Wie @ scebotari66 haben erklärt, Ext.Msg
und Ext.MessageBox
sind Singletons von Ext.window.MessageBox
. Wenn Sie also Ext.window.MessageBox.makeButton
überschreiben, hat dies keine Auswirkungen, wenn Sie die Singletons für diese Klasse verwenden.
Es gibt jedoch eine Möglichkeit, Ihre Überschreibungen auf Ext.window.MessageBox
für den Singleton anzuwenden. Rate mal wie.
(Trommelwirbel)
tantantanan!
Ext.MessageBox = Ext.Msg = new Ext.window.MessageBox();
Ja, das ist richtig. Sie müssen das Singleton nur nach dem Überschreiben neu zuweisen. So
:
Ext.override(Ext.window.MessageBox, {
makeButton: function (btnIdx) {
var btnId = this.buttonIds[btnIdx];
return new Ext.button.Button({
handler: this.btnCallback,
itemId: btnId,
scope: this,
text: this.buttonText[btnId],
iconCls: ['okbutton', 'yesbutton', 'closebutton', 'cancelbutton'][btnIdx],
minWidth: 75 //or you can also remove this to make the icons close to the label
});
}
});
//re-assign singleton to apply overrides
Ext.MessageBox = Ext.Msg = new Ext.window.MessageBox();
das nächste Mal Ext.Msg.alert()
rufen, Ihre Symbole zeigen nun auch.
Ich hoffe, Sie finden das hilfreich.
HINWEIS: Die iconCls
config in der Reihenfolge sein sollte [ok, yes, no, cancel]
Guter Punkt! Schande über mich für das nicht zu sehen – scebotari66
könnte es nicht gesehen haben, wenn Sie nicht beantwortet haben. :) Sie besitzen 80% des Kredits: D –