Vuetify Combobox Not Returning id вместо значения - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь заполнить форму, заполненную <v-combobox>, которая автоматически заполняется для лица, заполняющего форму.Я преуспел в этом, но у меня странная проблема.Когда я на самом деле выбираю элемент, который <v-combobox> предлагает, он правильно вводит данные.Однако, когда он отправляет форму, он отправляет id в массиве параметров, а не значение, которое я выбрал.Это кажется мне неправильным, потому что я установил item-value="key" равным item-text="key", а текст верен в виде строки, которую я хочу, так почему же это значение?

<v-flex
v-for="key in inputsNames"
v-if="key !== 'id'"
:key="key"
xs12
>
<v-combobox
    :item-text="key"
    :label="key"
    :loading="loading"
    v-model="editForm[key]"
    :search-input.sync="inputSearch[key]"
    :items="searchOptions"
    :item-value="key"
    cache-items
    clearable
    prepend-icon="filter_list"
/>
</v-flex>

Например:Заполнение полей x, y автозаполнением, а остальные вручную вернет следующее сообщение об ошибке:

** Преобразование массива в строку (SQL: вставить в table (w, x, y, z) значения (test, 5, 4, 1)) **

В этом случае 5, 4, должно было быть две строки.

ОБНОВЛЕНИЕ:

Все еще не решено, но я обнаружил, что фактически отправляет объект POST целиком.

1 Ответ

0 голосов
/ 17 октября 2018

Обновление 2019: Я снова изучил этот вопрос и наконец нашел ответ.Это связано со свойством return-object, которое по умолчанию является истинным.Отключение заставляет v-combobox работать должным образом.

<v-combobox
    :item-text="(obj) => (obj)[key])"
    :item-value="(obj) => (obj)[key]"
    v-model="editForm[key]"
    :search-input.sync="editForm[key]"
    :items="searchOptions"
    :return-object="false"
>

Оригинальное решение: Для людей с таким же сложным использованием комбинированного списка в будущем я решил эту проблему,Как ни странно, стандартная :item-value prop не работает с настройкой мульти-комбинированного списка, как я сделал здесь.Я не могу объяснить почему.Решение, которое я нашел, состоит в том, чтобы предоставить пользовательское сопоставление для ключа для :items prop следующим образом:

<v-flex
    v-for="key in columns"
    v-if="key !== 'id'"
    :key="key"
    xs12
>
    <v-combobox
        :item-text="key"
        v-model="editForm[key]"
        :search-input.sync="inputSearch[key]"
        :items="searchOptions.map((obj) => (obj)[key])"
    />
</v-flex>

Это позволит вам создать много комбинированных списков и использовать один и тот же сценарий для извлечения для всехиз них при этом они все еще функционируют независимо, как и предполагалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...