Изначально мой коллега отлаживал код (исходник) «по кускам» (удалял, вставлял вывод в консоль), так он добрался до компонента. Я же через Chrome указал точку останова в «Event Listener Breakpoints» (я выбирал DOM Mutation), потом уже в коде, далее как обычно.
Рад, что помогло. Решение должно сработать для компонентов, расширяемых этот основной Ext.form.TimeField, такие как: Ext.ux.form.DateTimeField, Ext.ux.form.DateField.
Наше веб-приложение так просто не перенести, потому пришлось создавать патч. В версиях 4+ этот компонент сильно изменился, но цикл и там находил. Вот кусок из Ext-picker-Time:
createStore: function() {
var me = this,
utilDate = Ext.Date,
times = [],
min = me.absMin,
max = me.absMax;
while(min <= max){
times.push({
disp: utilDate.dateFormat(min, me.format),
date: min
});
min = utilDate.add(min, 'mi', me.increment);
}
return new Ext.data.Store({
model: me.modelType,
autoDestroy: true,
data: times
});
}
Ну зачем так категорично, зависит от задачи же. Лично мне разный контекст уменьшил "головную боль".
Т.е. это запись:
А это чтение:
подробнее «почему так»
P.S.: этот пост навеял написать небольшую статью.