Не отображаются опции динамического списка q-select
Есть список q-select
, который заполняется опциями через атрибут :options
. Опции заполняются через PHP-шный метод (temp
- для хранения изначальных опций):
$this->options['producer'] = $this->temp['producer'] = $arResult; //Наполнил через запрос
Попытался сделать фильтрацию пользователем и теперь select выглядит так:
<q-select
class="q-pa-md"
dense
options-dense
use-input
label="Производитель"
v-model="producer"
data-cid="producerSelect"
:options="options.producer"
@filter="filterProducer"
/>
Теперь же мне нужно выводить лишь те значения списка, подстрокой которых является введенное пользователем значение. Обработка фильтрации - метод @filter
:
filterProducer (val, update) {
if (val === '') {
update(() => {
this.options.producer = this.temp.producer
})
return
}
update( async () => {
let options = await getOptions(val)
this.options.producer = options.producer
})
}
Таки все нормально даже работает, однако, если я начну убирать кнопкой backspace
значения, то в какой-то момент select
покажет не все опции (см. рис.), но если начать перемещение по элементам списка, используя стрелки на клавиатуре, то все элементы появятся. Не могу понять, почему исчезают элементы, и как это решить.
Метод getOptions:
getOptions($val)
{
Loader::includeModule('crm');
$result = array();
$obCompanies = \Bitrix\Crm\CompanyTable::getList(array(
'select' => array(
'TITLE',
'ID',
),
'filter' => array(
'%TITLE' => $val,
'UF_CLIENT_TYPE' => '94',
),
'limit' =>15,
));
while ($arCompanies = $obCompanies->fetchRaw()){
$result[] = array(
'label' => $arCompanies['TITLE'],
'value' => $arCompanies['ID']
);
}
return Result::json(array(
'producer' => $result
));
}
Как видно на скриншотах, после введения информации и последующего стирания не отобразился элемент "test 132"