EXTJS - Как проверить, существует ли элемент?

Я должен знать, существует ли boxComponent в расширении formPanel для принятия некоторых мер... Там некоторый путь состоит в том, чтобы знать это? что-то вроде этого:

if(getElementById("boxId") != 'undefined' ){
    alert('exists');
} 
10
задан Amber 19 July 2010 в 16:41
поделиться

2 ответа

Общая схема, которую использует большинство людей, такова:

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 и т.д.)

.
16
ответ дан 3 December 2019 в 20:02
поделиться

Вы можете использовать Ext.get('boxId'). Он возвращает null, если объект не существует, и возвращает объект Ext.Element.

Использование getElementById, вероятно, было бы намного быстрее. Есть ли у вас какие-либо конкретные возражения против этого?

0
ответ дан 3 December 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: