2011-07-20 3 views
2

У меня есть компонент, который я создал, который расширяет Ext.window.Window, я дал ему псевдоним «widget.customereditor». После того как я создана показана экземпляр этого компонента, кажется, оба из следующих частей коды для получения ссылки на одно и то же:Разница между Ext.widget() и Ext.ComponentQuery.query()?

Ext.ComponentQuery.query('customereditor')[0]; 
Ext.widget('customereditor'); 

Проблема заключается в том, когда я пытаюсь выполнить близкий метод на возвращенный объект. Таким образом, следующий делает работу и закрывает окно:

Ext.ComponentQuery.query('customereditor')[0].close(); 

Хотя это не работает:

Ext.widget('customereditor').close(); 

мне интересно, в чем разница между этими двумя способами запросов?

ответ

11

После прочтения документов API я нашел ответ. Оказывается, Ext.widget фактически не запрашивает существующий экземпляр компонента в DOM, а вместо этого создает новые экземпляры компонентов по их xtype. Ext.ComponentQuery следует использовать для поиска существующих экземпляров компонентов.