Vuetify 自动完成 - 如何传递默认值?

All*_*lan 5 vue.js vuetify.js

我正在使用 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)
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

chr*_*ris 8

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

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


小智 8

我遇到了这个问题,我所做的是传递给 v-model,即列表中 0 索引位置的元素:

:items="items"
v-model="items[0]"
Run Code Online (Sandbox Code Playgroud)


Pra*_*V.S 5

您还可以在数据中使用auto-select-first属性和默认值。

   <v-autocomplete
          v-model="selectedItem"
          auto-select-first
          :items="items">
   </v-autocomplete>

Run Code Online (Sandbox Code Playgroud)
  data() {
    return {
      items: ['Default'],
      selectedItem: "Default",
    }
}
Run Code Online (Sandbox Code Playgroud)