有人能解释一下为什么只有beforeselect事件,而没有“取消选择”或“取消选择后”吗?有没有办法绕过这个限制?我需要在每次取消选择一个项目时执行代码。
tkclm6bt1#
TagField从组合框扩展。在Ext.form.field.ComboBox中,侦听器被添加到selectionModel中。这些侦听器只包括beforeselect和beforedeselect,但不包括select。beforeselect在onBeforeDeselect方法中被触发。如果要添加它,则必须覆盖onBindStore和createPicker。selectionModel是从Ext.selection.DataViewModel扩展而来的,可以在那里找到所有的事件。示例(只需写下,您必须完成):
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 });
1条答案
按热度按时间tkclm6bt1#
TagField从组合框扩展。
在
Ext.form.field.ComboBox
中,侦听器被添加到selectionModel
中。这些侦听器只包括beforeselect
和beforedeselect
,但不包括select。beforeselect在onBeforeDeselect
方法中被触发。如果要添加它,则必须覆盖
onBindStore
和createPicker
。selectionModel是从
Ext.selection.DataViewModel
扩展而来的,可以在那里找到所有的事件。示例(只需写下,您必须完成):