ReferenceError: индекс не определен в рендере слушателей. Extjs6 - PullRequest
1 голос
/ 05 июня 2019

Для поля со списком, в окне редактирования мне нужно, чтобы поле меняло только одно значение вверх или вниз, как при создании новой записи или ее редактировании.

....
{
                xtype: 'combobox',
                name: 'status',                   
                fieldLabel: 'Status',
                displayField: 'name',
                valueField: 'id',                   
                queryMode: 'local',
                store: new Ext.data.ArrayStore({
                    id: 0,
                    fields: ['id','name'],
                    data: [[1, 'Новая'], [2, 'В работе'], [3, 'В ожидании'], [4, 'Закрытая'], [5, 'Архивная']]
                }),              
                listeners: {
                    'select': function (combo, record) {

                        index = record.internalId;
                        filterCombo(combo, index);
                    },
                    'render': function (combo) {
                        //index = combo.getSelection().internalId;
                        //filterCombo(combo, index);
                }
                }
},
....

Я делаю это с помощьювыбрать и визуализировать события.Функция filterCombo выглядит следующим образом:

function filterCombo(combobox, index) {   

    store = combobox.getStore();
            store.clearFilter();
            store.filterBy(
                function(record) {
                    if ((record.internalId == index - 1) || (record.internalId == index) || (record.internalId == index + 1)) {
                        return true;
                    } else {
                        return false;
                    }
                }
            );
}
  1. При выполнении рендера возникает ошибка в combo.getSelection () (ReferenceError: index is not defined).Почему?
  2. Можно ли реализовать эту логику более кратко, например, в ViewController в методах addItem, editItem.Т.е. отфильтровать магазин в момент открытия формы для добавления / редактирования, или это вариант не очень?
  3. Если остановиться на 1-й точке, то где было бы наиболее правильно вынутьфункция filterCombo, которая не оставляет ее в представлении App.view.TestEdit Пример Fiddle

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...