Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ошибка при получении индекса записи combobox (https://javascript.ru/forum/extjs/75557-oshibka-pri-poluchenii-indeksa-zapisi-combobox.html)

Swat2k 23.10.2018 08:55

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

Ambassador 25.10.2018 00:19

Ребят, всем привет!
Почитав документацию про 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

Swat2k 25.10.2018 01:12

Потому что на этапе рендера, store может быть ещё не загружен.
Добавил отсебятины: Fiddle


Часовой пояс GMT +3, время: 23:28.