Vuetify 从 <v-select> 中获取选定的索引

Vuetify get selected index from <v-select>

经过多次搜索和尝试,我终于找到了一种从 Vuetify 中的 <v-select> 元素获取所选索引的方法。

但我认识到它不是干净的代码,但它有效并解决了我的问题。

但是,如果有人能帮助我简化一下这个东西,我将不胜感激。

这是我的代码:

<template>
    <v-select
        v-model="personSelected"
        @change="getIdFromPeopleSelect"
        :items="personData"
        label="Select a person"
        outlined>
    </v-select>
</template>
<script>
export default {
  name: "App",
  data() {
    return {
      personSelected: "",

      //objects inside this array was extracted from a firebase query ;-) //
      personData: [
        {name: "John", city: "New York"},
        {name: "Mary", city: "Berlin"},
        {name: "Claudia", city: "Dubai"}
      ]
    };
  },
  methods: {
    getIdFromPeopleSelect() {

      // this could be better to get selectedIndex from v-select
      return console.log(this.personData.findIndex(x => x.name=== this.personSelected));
    }
</script>

非常感谢。

如果获取索引的原因是为了获取与选择相关的对象,更好的方法是使用 return-object 属性。

也使用 item-text 指定 name 字段。

您可以删除 change 侦听器,因为 personSelected 将包含该对象。

<v-select
  v-model="personSelected"
  :items="personData"
  item-text="name"
  label="Select a person"
  return-object
  outlined>
</v-select>