首页 > 解决方案 > Vuetify 自动完成 - 如何传递默认值?

问题描述

我正在使用 Vuetify 自动完成组件,我希望它在其输入字段中显示默认值

我试图将值作为道具传递并将 v-model 字段更改为任何字符串,但它不起作用 - 输入字段为空,除非我从列表中选择值

Vuetify 官方示例

<v-autocomplete
        v-model="select"
        :loading="loading"
        :items="items"
        :search-input.sync="search"
        cache-items
        class="mx-3"
        flat
        hide-no-data
        hide-details
        label="What state are you from?"
        solo-inverted
      ></v-autocomplete>

new Vue({
  el: '#app',
  data () {
    return {
      loading: false,
      items: [],
      search: null,
      select: 'Alabama',
      states: [
        'Alabama',
        'Alaska',
        'American Samoa',
        'Arizona',
        'Arkansas',
        'California',
        'Colorado',
      ]
    }
  },
  watch: {
    search (val) {
      val && val !== this.select && this.querySelections(val)
    }
  },
  methods: {
    querySelections (v) {
      this.loading = true
      // Simulated ajax query
      setTimeout(() => {
        this.items = this.states.filter(e => {
          return (e || '').toLowerCase().indexOf((v || '').toLowerCase()) > -1
        })
        this.loading = false
      }, 500)
    }
  }
})

标签: vue.jsvuetify.js

解决方案


v-autocomplete组件将不会显示“Alabama”,因为在 中找不到“Alabama” items。您需要做的就是添加“Alabama”以items使其最初有效:

data () {
    return {
      loading: false,
      items: ['Alabama'], // <- add the default here
      search: null,
      select: 'Alabama',
      states: [ ...

推荐阅读