Я должен знать, существует ли boxComponent в расширении formPanel для принятия некоторых мер... Там некоторый путь состоит в том, чтобы знать это? что-то вроде этого:
if(getElementById("boxId") != 'undefined' ){
alert('exists');
}
Общая схема, которую использует большинство людей, такова:
var myBoxCmp = Ext.getCmp('cmpId');
if(myBoxCmp){
myBoxCmp.doSomething();
}
То же самое для элементов:
var el = Ext.get('elId');
if(el){
el.doSomething();
}
Вы также можете использовать такие методы, как Container.findById
, но если у вас есть идентификатор (предполагается, что он уникален, что и должно быть), просто используйте getCmp
.
EDIT: Прошло несколько лет после этого первоначального ответа, и теперь getCmp
обычно не одобряется как запах кода и его обычно следует избегать в приложениях (продвигает глобальные ссылки, которые обычно указывают на плохой дизайн, когда они требуются). Обычно лучше использовать ссылки на контроллер (если используется MVC) или различные методы ComponentQuery или Container для ссылки на связанные компоненты (например, down, child, getComponent и т.д.)
Вы можете использовать Ext.get('boxId')
. Он возвращает null
, если объект не существует, и возвращает объект Ext.Element
.
Использование getElementById
, вероятно, было бы намного быстрее. Есть ли у вас какие-либо конкретные возражения против этого?