2012-01-03 2 views
1

Итак, у меня есть эта группа флажков ExtJS, в которой мне нужно перебирать и проверять свои имена на некоторые данные, которые я получаю из хранилища данных, каждый раз, когда пользователь выбирает продукт из сетки.ExtJS Array issue

Это код:

Ext.each(Ext.getCmp('depCheckGroup').items,function(deptm,index) { 
     lookfor = deptm.id; 

     if(dsDepartments.find("dept_id",lookfor) != -1) { 
      deptm.checked = true; 
     } 
    }); 

Итак, опять же, каждый раз, когда пользователь выбирает строку, это должно сгореть. Проблема в том, что работает только первый клик (не имеет значения, какая строка работает).

остальные бросает ошибку:

deptm is undefined 

Если я пытаюсь получить длину Ext.getCmp('depCheckGroup').items массива до или после этого он показывает «11», который является правильным числом, так что я знаю ISN массива» t пусто. Все данные JSON правильно загружаются из хранилища данных (опять же, это действительно работает для выбранной первой строки). Наверное, мне не хватает чего-то совершенно очевидного здесь, но я действительно не вижу его.

+0

нам нужно больше кода, где вы используете это в качестве слушателя на то, что элемент и т.д .. – peter

ответ

2

элементы - это экземпляр Ext.util.MixedCollection.

Вместо этого используйте:

Ext.getCmp('depCheckGroup').each(function(comp){ 
    console.log(comp); 
});