поиск слова не работает в поле со списком в версии ext 7
У меня есть поле со списком в коде EXT версии 7. У меня редактируемая конфигурация верна. Мой код приведен ниже. Этот код похож на тот, что присутствует в документации по отправке. Я только что изменил редактируемую конфигурацию на true. Когда мы вводим что-либо в текстовое поле, оно добавляет случайные символы, и поиск работает не так, как ожидалось. Это ошибка Ext 7? Я не могу понять. Кто-то еще сталкивается с чем-то подобным?
Ext.create({
fullscreen: true,
xtype: 'container',
padding: 50,
layout: 'vbox',
items: [{
xtype: 'combobox',
label: 'Choose State',
queryMode: 'local',
displayField: 'name',
valueField: 'abbr',
// For the dropdown list
itemTpl: '<span role="option" class="x-boundlist-item">{abbr} - {name}</span>',
// For the content of the text field
displayTpl: '{abbr} - {name}',
editable: true,
store: [
{ abbr: 'AL', name: 'Alabama' },
{ abbr: 'AK', name: 'Alaska' },
{ abbr: 'AZ', name: 'Arizona' }
]
}]
});```
2 ответа
У меня такая же проблема с компонентом combobox в современном наборе инструментов. Я попробовал ту же настройку в Ext JS версии 6.5, и произошла та же ошибка.
Единственный обходной путь, который я нашел на данный момент, - не использовать displayTpl
config. Потом все заработало как задумано.
РЕДАКТИРОВАТЬ:
Я немного отладил ext-modern-all и нашел решение. Если вы хотите иметь возможность редактировать поле ввода, а также использоватьdisplayTpl
ты должен установить forceSelection: true
. В противном случае он будет рассматривать вашу запись как новую запись, и возникнет эта ошибка. (https://docs.sencha.com/extjs/7.0.0/modern/Ext.field.ComboBox.html)
Надеюсь, это поможет.
IDK, почему первый ответ был выбран как правильный ответ, я надеюсь, что мой ответ ниже может минимально расширить ваши знания. Когда ваша проблема была:
"Когда мы вводим что-либо в текстовое поле, добавляются случайные символы, и поиск не работает должным образом".
Я хочу попытаться понять это утверждение следующим образом:
"Вы хотите попробовать найти товар в своем магазине или опциях, введя случайный символ в любой позиции любого совпадающего товара"
В этом случае для достижения цели вы должны добавить эти свойства в поле со списком:
anyMatch : true, // this is the key
caseSensitive : false, //by default this has been set automatically
minChars: 0,//by default this has been set automatically too
forceSelection: false // set to false to allow free input to textfield with no matched result and set to true to force the user to choose one of the last matched result rather than giving the opportunity to input free text
Прежде чем сделать вывод о том, является ли проблема ошибкой, нам нужно провести все исследования, чтобы получить точное заключение. Не забудьте узнать больше на https://docs.sencha.com/extjs/7.0.0/modern/Ext.field.ComboBox.html
Надеюсь, это поможет вам.