Как запросить компонент по имени компонента, который содержит некоторую часть строки - PullRequest
3 голосов
/ 08 марта 2012

Я хочу использовать Ext.ComponentQuery.query() для запроса имени кнопки, содержащей некоторый путь имени.

Предположим, у меня есть 4 кнопки с именем, объявленным как 'edit_btn', 'add_btn', 'add2_btn' и 'edit2_btn'

Тогда я использую запрос. Ext.ComponentQuery.query("button[name='*edit*']");

Я должен получить '' edit_btn '' и '' edit2_btn ''.

Ext.ComponentQuery.query("button[name='*add*']");

Я должен получить кнопки 'add_btn' ' add2_btn '.

Или я могу использовать регулярное выражение в команде Ext.ComponentQuery.query()?

Если можно, как его использовать?

1 Ответ

10 голосов
/ 08 марта 2012

Это не реализовано.Я посмотрел на исходный код, и там реализован только оператор равенства.Однако его легко расширить (см. filterByAttribute в файле ComponentQuery.html), но вы должны скопировать весь код из исходного кода, потому что он реализован как синглтон.

Другой способ - выбрать кнопки с атрибутом имени и отфильтровать их позже, например:

Ext.Array.filter(
    Ext.ComponentQuery.query('button[name]'), 
    function(c){ return /^add/.test(c.name); }
)
...