Не отображаются опции динамического списка q-select

Рейтинг: 0Ответов: 2Опубликовано: 28.04.2023

Есть список 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"

Ответы

▲ 0

Возможная причина в том, у вас статический массив перезаписывается динамическим

▲ 0

аттрибут :options как раз же нужно "забиндить" тоесть писать именно с двумя точками впереди, может в этом причина?