vue.js - 如何将数组数据加载到 Vuetify 选择输入

标签 vue.js vuex vuetify.js

我试图在 vuetify 选择组件中显示“位置”,但我当前的代码呈现“[object Object]”而不是位置 1、位置 2 等。

我的选择组件:

<v-select
:items="locations"
v-model="location"
label="Choose Location"
bottom
autocomplete
></v-select>

地点:

locations () {
  return this.$store.getters.getLocationsForEvent(this.event.id)
}

Vuex setter/getter :

getLocationsForEvent: (state) => (id) => {
  return state.loadedLocations.filter(function (location) { 
    return location.eventId === id; 
  });
}

这是位置数据的屏幕截图:

enter image description here

谢谢!

最佳答案

对于自定义对象,您必须指定 item-textitem-text每个选项将显示的内容

例如,从您的屏幕截图来看,title 是一个可能的属性:

<v-select
:items="locations"
v-model="location"
label="Choose Location"
item-text="title"
bottom
autocomplete
></v-select>

下面的演示。

没有item-text:

new Vue({
  el: '#app',
  data () {
    return {
      location: null,
      locations: [
        { id: "1111", manager: 'Alice',  title: 'Water Cart 1' },
        { id: "2222", manager: 'Bob',    title: 'Water Cart 2' },
        { id: "3333", manager: 'Neysa',  title: 'Water Cart 3' }
      ]
    }
  }
})
<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons'>
<link rel='stylesheet' href='https://unpkg.com/vuetify@1.0.10/dist/vuetify.min.css'>
<script src='https://unpkg.com/vue/dist/vue.js'></script>
<script src='https://unpkg.com/vuetify@1.0.10/dist/vuetify.min.js'></script>

<div id="app">
  <v-app>
    <v-container>
      <v-select
        :items="locations"
        v-model="location"
        label="Choose Location"
        bottom
        autocomplete
        >
      </v-select>
    </v-container>
  </v-app>
</div>

使用item-text:

new Vue({
  el: '#app',
  data () {
    return {
      location: null,
      locations: [
        { id: "1111", manager: 'Alice',  title: 'Water Cart 1' },
        { id: "2222", manager: 'Bob',    title: 'Water Cart 2' },
        { id: "3333", manager: 'Neysa',  title: 'Water Cart 3' }
      ]
    }
  }
})
<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons'>
<link rel='stylesheet' href='https://unpkg.com/vuetify@1.0.10/dist/vuetify.min.css'>
<script src='https://unpkg.com/vue/dist/vue.js'></script>
<script src='https://unpkg.com/vuetify@1.0.10/dist/vuetify.min.js'></script>

<div id="app">
  <v-app>
    <v-container>
      <v-select
        :items="locations"
        v-model="location"
        label="Choose Location"
        item-text="title"
        bottom
        autocomplete
        >
      </v-select>
    </v-container>
  </v-app>
</div>

关于vue.js - 如何将数组数据加载到 Vuetify 选择输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49469589/

相关文章:

javascript - Vuejs 和 Drupal

vuejs2 - 如何在vue js中使div可拖动?

javascript - 如何从一个 Action 派发另一个 Action 并在 Vuex 中派发另一个 Action

css - 在输入上设置全 Angular

vuejs2 - vuetify组件的v-select文本如何居中对齐

javascript - 如何切换添加删除数组中同一位置的多个项目?

css - 更改 bootstrap-vue 中下拉菜单的文本颜色

javascript - VueJS 组件未加载

laravel - Vuex 商店中的分页

vue.js - Vue 3 - 全局 axios 实例