迭代特殊类型

时间:2015-04-27 21:30:47

标签: javascript extjs combobox

我有Ext.form.Panel,其中包含"典型"的混合物。字段:textfieldcomboboxcheckboxfield等。每个combobox都有forceselection : true,因此 - 相关商店。我的目标是遍历Panel中的每个字段,确定它是否为combobox,然后执行"某些内容" - 即加载相关商店。

两个问题(每个问题都牵着过手):

  1. 是否可以Ext.each超过特定的"类型"面板上的组件?或者,以稍微不同的方式处理问题:是否可以选择一组与特定类型匹配的组件?
  2. 如果没有,我如何在运行时确定组件的类型?
  3. 目前,我使用标识符列表,iterating覆盖每个标识符,并对面板运行查询,例如

    var comboBoxIds : [
        'dogs',
        'cats',
        'fish'
    ];
    
    Ext.each(comboBoxIds, function(comboId) {
        var comboBox = panel.queryById(comboId);
    
        //....
    
    });
    

    以上是一种非常简单的缩减。

1 个答案:

答案 0 :(得分:2)

使用query方法获取所需内容,然后遍历数组:

var combos = panel.query('combobox[forceSelection=true]');

for (var i = 0; i < combos.length; i++) {
    var combo = combos[i];
    ...
}

有关ComponentQuery语法的更多信息:http://docs-origin.sencha.com/extjs/5.1/5.1.0-apidocs/#!/api/Ext.ComponentQuery