[SOLUCIONADO] Acceder a los items de un componente
Buenos días,
Estoy con un proyecto utilizando uno de los ejemplos de extjs, en concreto utilizando el webDesktop.
La cuestión es que no soy capaz de acceder a los items (componentes) que hay en un componente concreto.
Para facilitar la pregunta utilizare uno de los ejemplos del tutorial de esta pagina.
Si tenemos un codigo
var panel1 = new Ext.Panel({
title: 'Users',
iconCls: 'users'
});
var panel2 = new Ext.Panel({
title: 'Reports',
iconCls: 'reports'
});
var panel3 = new Ext.Panel({
title: 'Documents',
iconCls: 'documents'
});
var main = new Ext.Panel({
title: 'My first panel',
width:250,
height:600,
defaults: { // con esto evitamos...
collapsible:true, //duplicar código...
border: false, // y todas estas...
bodyStyle: 'padding:10px;', // propiedades ...
titleCollapse: true, // son agregadas a...
height:200 //todos los paneles internos
},
items: [panel1,panel2,panel3]
});
main.render('frame');
La pregunta es, como se puede acceder a panel1 (si yo no lo tengo referenciado)???
Es decir, mi objeto main seria algo asi
var main = new Ext.Panel({
title: 'My first panel',
width:250,
height:600,
defaults: { // con esto evitamos...
collapsible:true, //duplicar código...
border: false, // y todas estas...
bodyStyle: 'padding:10px;', // propiedades ...
titleCollapse: true, // son agregadas a...
height:200 //todos los paneles internos
},
items: [{
id:'panel1',
xtype:'panel',
title: 'Users',
iconCls: 'users'
},
panel2,
panel3]
});
Al no tener referenciado el 'panel1' no se como acceder a sus propiedades.
He probado con
main.items[0].title;
main.items['panel1'].title;
Ext.fly('panel1').title;
No se, soy muy novato en esto, y el alcance de las variables todavia me lia aun a pesar de haber hecho el tutorial, a ver si alguien me lo puede aclarar un poco.
Muchas gracias a tod@s
Si, por supuesto que me ha servido. ahora si he podido acceder a las propiedades. Mil gracias, es la primera vez que me lio con Ext y cada cosilla es un escalon.
Gracias una vez mas Tokkaido
para acceder a los componentes usas la propiedad id, en tu ejemplo deberías poder acceder a el de la sgte manera:
Ext.getCmp('panel1');
también puedes asignárselo a una variable:
var micomp = Ext.getCmp('panel1');
y luego acceder a sus propiedades:
micomp.title;
recuerda que para acceder a ciertas propiedades y valores asi como para asignar valores nuevos a propiedades debes usar los métodos del componente. Siempre ten a mano el enlace con la API del ExtJS que es la mejor forma de saber que métodos tiene un componente.
Espero te sirva :-)
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.