ExtJs6: Ext.ComponentQuery.query ('# autogenerated_id') возвращает пустой массив, если у компонента есть itemId - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть компонент ExtJs.Я установил для него itemId , но id генерируется автоматически.

Теперь Ext.getCmp('autogenerated-id') возвращает мой компонент.Но Ext.ComponentQuery.query('#autogenerated-id') возвращает пустой массив.

Но: Ext.ComponentQuery.query ('[id = assets-information-form-1918]') снова возвращает мой компонент.:)

Я использую ExtJs 6.5.3 classic.

Кажется, что свойство конфигурации itemId скрывает автоматически сгенерированный идентификатор из Ext.ComponentQuery, поэтому они становятся взаимоисключающими.

Мне не нужны другие средства для поиска или советы по установке идентификатора для компонента, написанию письма в службу поддержки Sencha или написанию сообщения на их форуме.

Мне нужно:

  • Означает заставить мой Ext.ComponentQuery.query('#autogenerated-id') найти Компонент, для которого getId () возвращает 'autogenerated-id'.

  • Если этоПо замыслу это невозможно, мне нужна ссылка на некоторую документацию, описывающую это поведение, ссылку на некоторый отчет об ошибке или имя файла и номер строки в источниках ExtJs + небольшая копия / вставка фрагмента оттуда.

enter image description here

1 Ответ

0 голосов
/ 11 апреля 2019

Из документации

Сводка Обеспечивает поиск компонентов внутри Ext.ComponentManager (глобально) или определенного Ext.container.Container в документе.с аналогичным синтаксисом для селектора CSS.Возвращает массив соответствующих компонентов или пустой массив.

Ext.ComonpentQuery.query ('# itemId') и массив.Ваша простуда выше использует автоматически сгенерированный идентификатор компонента.Знак # указывает на запрос на основе itemId компонента, а не на идентификатор компонента.

Попробуйте

Ext.ComponentQuery.query('assets-information-form-1918');

, который вернет массив, как указано в документации.

Ext.getCmp()

Это краткая ссылка на Ext.ComponentManager # get.Ищет существующий Ext.Component по id

, поэтому он возвращает компонентный объект.

Ext.ComponentQuery.query ('# itemId') [0] вернет первый объект в массиве.

Ext.ComponentQuery является предпочтительным методом Sencha, поскольку он более мощный при использованиитак как он возвращает массив, вы также запрашиваете элементы по xtype и другим атрибутам.

...