Нет события отмены выбора для поля тегов?

#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 });