Никто не запрещает его использовать главное понимать что у него есть свои ограничения (там не стоит делать 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, время: 23:28. |