Никто не запрещает его использовать главное понимать что у него есть свои ограничения (там не стоит делать bind, или как в данном случае store.load, и вообще, там стоит указывать вещи которые не должны быть одинаковыми на уровне цепочки прототипов).
А держать логику работы сложного компонента в view то ещё удовольствие, хотя бы потому что не позволяет повторно использовать код. В данном случае можно вообще обойтись без initComponent'a, и без всяких this.
Ext.define('MyApp.Panel', {
extend : 'Ext.Panel',
defaultListenerScope: true,
tellSomething : function () { console.log('Something'); },
tbar : [
{
text : 'Click me',
handler : 'tellSomething'
}
]
});
Для уровня представления ExtJS предлагает использовать именно декларативный стиль. |
Ребят, всем привет!
Почитав документацию про initComponent, я его убрал, лишь только по той причине что без него, мне, как начинающему, работать будет проще. Сделал так:
items:[{
xtype: 'combobox',
fieldLabel: 'Status',
name: 'status',
store: 'ContrAgents',
valueField: 'id',
displayField: 'name',
typeAhead: true,
queryMode: 'remote',
value: 3,//Установил Значение по умолчанию
listeners: {
'render': function (combo) {
var id_record = combo.getValue();
var index = combo.getStore().indexOfId(id_record)
console.log(index)
//filterCombo(combo, index);
}
}
},
Но в index значение -1. Почему? Как и советовали, сделал пример в Fiddle |
Потому что на этапе рендера, store может быть ещё не загружен.
Добавил отсебятины: Fiddle |
| Часовой пояс GMT +3, время: 01:31. |