#extjs
Вопрос:
Может ли кто-нибудь объяснить, почему существует только событие перед выбором, но не «отменить выбор» или «после выбора»?
Есть ли способ обойти это ограничение? Мне нужно выполнять код каждый раз, когда элемент отменяется.
Спасибо.
Ответ №1:
Поле тегов простирается от выпадающего списка.
Внутри Ext.form.field.ComboBox
слушатели добавляются в selectionModel
. Они включают только beforeselect
и beforedeselect
, но не выбирают. Выбор перед выборкой запускается внутри onBeforeDeselect
метода.
Если вы хотите добавить его, вы должны переопределить onBindStore
и createPicker
.
Модель выбора расширена из Ext.selection.DataViewModel
. Там вы можете найти все события.
Пример (просто запишите его, вы должны его заполнить):
Ext.define('MyApp.overrides.form.field.ComboBox', { override: 'Ext.form.field.ComboBox', onBindStore: function() { this.callParent(arguments); const me = this, picker = me.picker; if (picker) { me.pickerSelectionModel.on({ scope: me, deselect: me.onDeselect, afterdeselect: me.onAfterDeselect }); } }, onDeselect: Ext.emptyFn, onAfterDeselect: Ext.emptyFn });