¿Cómo puedo volver a utilizar el componente ExtJs4?

Hago muchas preguntas, pero nadie me responde...

por favor responde esta pregunta..

hola soy novato en extjs4

Yo uso extjs4,

Hago un componente, como este

var child1 = Ext.create('Ext.form.Panel', {
                    xtype : 'panel',
                    title : 'child1',
                    html : 'child1'
                });

y uso esto para la ventana 1, así

var win1 = Ext.create('Ext.window.Window', {
                    title : 'window1',
                    height : 200,
                    width : 400,
                    layout : 'fit',
                    items : child1
                }).show();

y quiero usar 'child1', otra ventana, como esta

var win2 = Ext.create('Ext.window.Window', { // setting
            height : 200,
            width : 200,
            layout : 'fit',
            title : 'window2',
            items : child1
        }).show();

pero este es un código incorrecto.

es solo ver en Window2.

pero quiero usar 'child1' tanto win1 como win2...

¿Cómo puedo hacer eso?, ¡Gracias!

preguntado el 10 de marzo de 12 a las 10:03

Elimine etxjs/extj4// de los títulos de sus preguntas (de todos ellos). No necesita repetir etiquetas en el título -

Justin tiene la respuesta correcta a continuación, aquí está el ejemplo: jsfiddle.net/dbrin/N7Lkg La razón por la que su ejemplo no funcionó es porque el DOM para el panel en realidad se movió al DOM de la ventana 1 y luego el mismo DOM del panel se movió nuevamente al interior de la ventana 2 ... en su lugar, tuvo que crear dos instancias del mismo DOM para mostrar en dos ventanas flotantes separadas. -

2 Respuestas

Si va a utilizar la reutilización de un componente, cree una vista y asígnele un alias usando el widget.*

Ext.define('MyApp.view.Child1', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.child1',
    html: 'child1'
});

Luego, cuando crea su ventana, puede hacer referencia por xtype.

var win1 = Ext.create('Ext.window.Window', {
    title : 'window1',
    height : 200,
    width : 400,
    layout : 'fit',
    items : [{ xtype: 'child1'}]
}).show();

respondido 11 mar '12, 14:03

Puedes usar ambos muy bien. Pero los elementos son una matriz, por lo que debe cambiarlo a items: [ child1 ]

respondido 10 mar '12, 13:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.