Extjs add div in ein Fenster
ich möchte hinzufügen eines neuen div-Tags durch klicken auf eine Schaltfläche, aber es funktioniert nicht.
Ich habe eine web-desktop von extjs und zwei Module. Ein Fenster wie im folgenden code, mit 1 div [20,20]. Und ein zweites Fenster mit einer Schaltfläche und-handler zum hinzufügen einer neuen div-tag wird in das erste Fenster. Aber es funktioniert nicht.
win = desktop.createWindow({
id: 'firstwindow',
title: 'firstwindow',
width: 421,
height: 391,
divs: [{
x: 20,
y: 20
}],
usw..
und hier der code für das hinzufügen eines div in der firstwindow, indem Sie auf die Schaltfläche in das zweite Fenster
handler: function(){
if (Ext.getCmp('firstwindow')) {
Ext.getCmp('firstwindow').add({
divs: [{
x: 20,
y: 40
}]
})
Ext.getCmp('firstwindow').render();
console.log(Ext.getCmp('firstwindow'));
}
}
Vielen Dank im Voraus,
cheers,
Thomas
- vielleicht sollten Sie erklären, was Sie zu tun versuchen mit den DIVs..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die add-Methode, die Sie verwenden wird verwendet, um eine ExtJs-Komponente in den Behälter (in deinem Fall das Fenster). Sie nicht erstellen Sie ein DIV-tag mit der add-Methode.
In ExtJS Sie können eine Komponente erstellen, und fügen Sie es in die container. Wenn Sie müssen, ändern Sie den DOM, eine Aktualisierung der el-Eigenschaft. Standardmäßig in ExtJS Ihr ein DIV-tag. Sie können dies überschreiben, indem Sie die autoEl config.
Eine mögliche Lösung:
Nun, Wenn Sie wollen, um immer wieder erstellen Sie ein DIV-tag mit einem bestimmten Inhalt, und er dynamisch gerendert, Sie können nehmen Sie die Hilfe von DataView. Erstellen Sie eine Vorlage mit Ihrem DIV-Element und seine Kind.. laden von Daten in den speichern und schließlich wiedergeben oder update DataView in Ihrem Fenster.
Ich denke, dass Sie verwenden müssen, Ext.getCmp('firstwindow').doLayout() anstelle von Ext.getCmp('firstwindow').render()