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

标签 vue.js vuejs2 vue-component vuetify.js html-select

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

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

但是,如果有人能帮助我稍微简化一下这件事,我将不胜感激。

这是我的代码:

<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 Prop 。

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

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

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

关于vue.js - Vuetify 从 <v-select> 中获取选定的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66572981/

相关文章:

javascript - 当单独的 JS 实体绑定(bind)然后更改数据时,Vue v-model 绑定(bind)的 html 元素无法更新 Vue 实例

javascript - Vue.js Battle - 确认框覆盖重置功能

javascript - vue-chartjs无法从vue导入数据

vue.js - 全局注册单文件组件

javascript - 如何使用vue js在前端显示错误信息?

javascript - 将 VueJs 模态组件添加到 Laravel 模板

javascript - 未定义本地存储

php - 如何使用 Laravel 和 Vue Js 制作自定义分页组件

laravel - 如何将数组从 Controller 传递到 vue.js v-for?

vue.js - 将表单提交推迟到方法?