Выпадающий список неправильно сохраняет выбранное значение в EXT JS 7.2
Я работаю с приложением Sencha EXT JS в версии 7.2, и мы обнаружили следующий сценарий:
- Щелкните раскрывающийся список и выберите значение
- Нажмите "Готово"
- Щелкните раскрывающийся список и выберите другое значение
- Нажмите "отменить"
- Щелкните раскрывающийся список
- Убедитесь, что выбрано недопустимое значение
Чтобы воспроизвести такое поведение, есть скрипка sencha:
https://fiddle.sencha.com/#view/editor&fiddle/3704
Спасибо!
2 ответа
Похоже, это стандартная функция (не ошибка);) В любом случае, чтобы исправить / изменить поведение для всех полей со списком, используйте следующее переопределение:
Ext.define('overrides.field.ComboBox', {
override: 'Ext.field.ComboBox',
onExpandTap: function() {
this.getPicker().setValue(this.getValue());
this.callParent();
}
});
Чтобы сделать то же самое для одного поля со списком:
{
picker: 'edge',
xtype: 'combobox',
valueField: 'id',
displayField: 'description',
queryMode: 'local',
store: 'optionsStore',
listeners: {
// Add this..
expand: function(field) {
field.getPicker().setValue(field.getValue());
}
}
}
В нашем сценарии проблема заключается в том, что мы обновили страницу. Используя ваше предложение переопределения, только когда я открыл во второй раз, значение выбрано правильно.
Итак, мы используем следующее переопределение, чтобы исправить это поведение:
Ext.define('Ext.override.field.Select', {
override: 'Ext.field.Select',
updatePickerValue: function (picker, value) {
if (!value) value = this.getValue();
picker.setValue(value);
}
});
Это почти то же самое, но мы переопределяем метод updatePickerValue.
Спасибо за помощь!
- Ренато Карвалью