我正在使用 Vuetify 自动完成组件,我希望它在其输入字段中显示默认值
我试图将值作为道具传递并将 v-model 字段更改为任何字符串,但它不起作用 - 除非我从列表中选择值,否则输入字段为空
<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)
该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)
您还可以在数据中使用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)