#vue.js #vuejs2 #vue-component
#vue.js #vuejs2 #vue-компонент
Вопрос:
Я использую vue-select в vue.js
<v-select :options="prodItems" @input="setSelected"></v-select>
При вводе я получаю элементы в выпадающем списке, но я хочу предварительно выбрать значение при редактировании, предположим, в моей таблице, если идентификатор 2 сохранен, тогда в опции выбора должен быть выбран идентификатор 2.
Ответ №1:
Вы можете использовать v-model
для привязки значения к selected
переменной, объявленной в data()
. Если есть начальное значение для selected
, то оно будет выбрано по умолчанию.
<template>
<div id="app">
<v-select
:options="prodItems"
@input="setSelected"
v-model="selected"
></v-select>
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
selected: { id: 1, label: "P1" },
prodItems: [
{ id: 1, label: "P1" },
{ id: 2, label: "P2" },
],
};
},
methods: {
setSelected() {},
},
};
</script>
Поскольку вы используете объекты в качестве параметров в массиве, вы можете установить значение по умолчанию selected
{ id: 1, label: 'P1' }
равным . Я считаю, что вам нужен label
атрибут в ваших объектах для правильного отображения в раскрывающемся списке выбора.
Чтобы найти целевой объект в вашем массиве параметров:
const selected = options.find(option => option.id === [target id])
Комментарии:
1. Спасибо за ответ, я передаю этот массив в [ { «id»: 1, «name»: «P1» }, { «id»: 2, «name»: «P2»}] опция теперь при редактировании я хочу выбрать на основе идентификатора, имя должно отображаться
2. Таким образом, вы можете установить
selected
для объекта{ id: 1, name: 'P1' }
, например. Кроме того, я считаю, что в vue-select вам нуженlabel
атрибут для отображения его в раскрывающемся списке селектора. Проверьте обновленный ответ выше. @user3653474