Предварительный выбор значения при редактировании в Select 2 in vue.js

#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