Extjs Sencha Touch:使用ComponentQuery()和down()搜索具有类的组件

Extjs Sencha Touch:使用ComponentQuery()和down()搜索具有类的组件,extjs,sencha-touch,Extjs,Sencha Touch,我有一个问题,不知道这是一个错误还是我误解了什么。我想搜索具有特定类的组件。例如: Ext.define('Test', { xtype: 'Test', cls: ['cat', 'dog'] }); 我想找到我用this.down('Test[cls~=cat]')在Ext.Container中创建的这个组件(因为该组件有多个类)。但是我得到了未定义的或空的(不再知道了) 使用Ext.ComponentQuery.query('Test[cls~=cat]')我实际上可以找到它 为

我有一个问题,不知道这是一个错误还是我误解了什么。我想搜索具有特定类的组件。例如:

Ext.define('Test', {
  xtype: 'Test',
  cls: ['cat', 'dog']
});
我想找到我用
this.down('Test[cls~=cat]')
Ext.Container
中创建的这个组件(因为该组件有多个类)。但是我得到了
未定义的
空的
(不再知道了)

使用
Ext.ComponentQuery.query('Test[cls~=cat]')
我实际上可以找到它

为什么呢?我认为
down()
Ext.ComponentQuery.query
相同,不同之处在于它的搜索范围不是全局的


我正在使用Sencha Touch的当前版本。

不,这不起作用。但是你可以用

this.query('Test[cls~=cat]')
或者你用这样的东西:

Ext.ComponentQuery.pseudos.hasCls = function(items, cls) {
    var i = 0, l = items.length, c, result = [];
    for (; i < l; i++) {
        var c = items[i];
        if (c._cls && c._cls.indexOf(cls) > -1) {
            return c;
        }
    }
    return undefined;
};
this.down(".component:hasCls(cat)")