你想要这样的东西吗:
<template>
<v-app>
<div style="padding: 20px">
<v-autocomplete
v-model="state"
:items="states"
:filter="customFilter"
return-object
color="white"
item-text="name"
label="State"
></v-autocomplete>
</div>
<div style="padding: 20px;">state selected = {{ state }}</div>
</v-app>
</template>
<script>
export default {
name: 'app',
data: () => ({
state: null,
states: [
{ name: 'Florida', id: 1 },
{ name: 'Georgia', id: 2 },
{ name: 'Nebraska', id: 3 },
{ name: 'California', id: 4 },
{ name: 'New York', id: 5 },
],
}),
methods: {
customFilter(item, queryText, itemText) {
const text = item.name.toLowerCase();
const searchText = queryText.toLowerCase();
return text.indexOf(searchText) > -1;
},
},
mounted() {
[this.state] = this.states;
},
};
</script>
在本例中,我使用 v-autocomplete 和 prop return-object 处理 this.state(v-model 中的变量)。
如果你不使用return-object,你必须这样做:
mounted() {
// [this.state] = this.states;
this.state = 'Florida';
},
因为在 prop item-text 中定义了 name