ich nicht verstehen kann, warum das erste Mal diesen Code ausführen:ExtJS 4: Fenster nicht korrekt auf erste Show Sizing
var mypopup = Ext4.create('Suidgets.NSConfirmationBox', {
title: 'Delete',
message: 'Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>Do you want to delete this row? Do you want to delete this row? Do you want to delete this row?<br>',
id: 'mypopup',
listeners: {
afterrender: function() {
this.doComponentLayout();
}
}
});
mypopup.show();
Aber wenn Sie es schließen und die nächstes Mal ausgeführt wird, macht es die Fenstergröße perfekt:
Hier ist der Code des Widgets: https://jsfiddle.net/ardimaunahan/63ofm68o/
Ich habe verschiedene Ereignisse versucht, um doComponentLayout auszulösen, aber es wird immer noch nicht wirksam: show, before show, activate. Wenn Sie jedoch diese Konsole über den Browser zu tun, passt es perfekt:
Ext4.getCmp('mypopup').doComponentLayout();
Könnte mir jemand sagen, warum das passiert ist? Vielen Dank!
Update 1: ich den Unterschied auf den generierten HTML-Option aktiviert ist, unterscheidet sie sich von der Höhe und Breite des Hauptfensters:
Ich frage mich, wenn eine config in Ext.window gibt. Fenster, das ich verwenden kann, um diesen Fehler in Dimensionen zu beheben.
Update 2: hier eine völlig Arbeits Geige ist: https://jsfiddle.net/ardimaunahan/hcg4p3v4. Man muss im Browser Strg + F5 drücken, um das defekte Popup-Layout zu sehen. Sie müssen auch Esc drücken, um das Popup zu schließen. Wenn Sie in Firefox/Chrome auf "Popup-Schaltfläche anzeigen" klicken, wird das Layout korrekt angezeigt, im IE ist es jedoch immer noch fehlerhaft.
Ich habe versucht, 'tpl' für die Komponente im Fenster, aber das gleiche Ergebnis. auch überprüft den Unterschied in der generierten HTML, nur die Höhe und Breite des Fensters unterscheidet sich (siehe Bild oben) – firnnauriel
Kann nicht reproduzieren mit nur den Code zur Verfügung gestellt, ich denke, die CSS fehlt. Bitte mach eine Geige, die das Problem aufweist. – Alexander
Sie können versuchen, doComponentLayout zweimal aufzurufen oder doComponentLayout um einige Millisekunden zu verzögern. – Alexander