extjs 标记域没有取消选择事件?

fcg9iug3  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(160)

有人能解释一下为什么只有beforeselect事件,而没有“取消选择”或“取消选择后”吗?
有没有办法绕过这个限制?我需要在每次取消选择一个项目时执行代码。

  • 谢谢-谢谢
tkclm6bt

tkclm6bt1#

TagField从组合框扩展。
Ext.form.field.ComboBox中,侦听器被添加到selectionModel中。这些侦听器只包括beforeselectbeforedeselect,但不包括select。beforeselect在onBeforeDeselect方法中被触发。
如果要添加它,则必须覆盖onBindStorecreatePicker
selectionModel是从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
});

相关问题