El patrón común que utilizan la mayoría de la gente es la siguiente:
var myBoxCmp = Ext.getCmp('cmpId');
if(myBoxCmp){
myBoxCmp.doSomething();
}
Lo mismo para los elementos:
var el = Ext.get('elId');
if(el){
el.doSomething();
}
También puede utilizar métodos como Container.findById
, pero si usted tiene un id (suponiendo que es único, lo cual debería ser) simplemente use getCmp
.
EDITAR: Han pasado varios años desde esta respuesta original, y actualmente getCmp
generalmente está mal visto como code smell y normalmente debe evitarse en las aplicaciones (promueve las referencias globales, que generalmente indican un diseño deficiente cuando son necesarias). Es típicamente mejor utilizar referencias controlador (si se utiliza MVC) o los diversos métodos ComponentQuery o recipiente para hacer referencia a los componentes relacionados (por ejemplo down, child, getComponent, etc.)
Ext.get es una búsqueda con clave en una tabla hash, por lo que es básicamente tan rápido como getElementById (y tiene la ventaja de devolver un Ext.Element en lugar de un nodo DOM, suponiendo que ese es el objetivo final). –
Eso es solo un beneficio la próxima vez que lo ejecute. La primera vez será lenta. Por otra parte, si su objetivo es la velocidad, probablemente no esté utilizando Ext JS :) – Wolph
Verdadero. Hablando en términos prácticos, si estás usando Ext para empezar, no hay muchas razones para salir de su abstracción de Elemento. Y por "más rápido" todavía solo estás hablando de un milisegundo o dos en estos días. –