我的Vuetify v-select
元素看起来像这样:
<v-select
v-bind:items="languages"
v-model="setLocale"
label="Language:"
auto prepend-icon="map"
item-value="fetchedLocale"
hide-details
id="langSelect"
>
在data
中,您可以找到:
data () {
return {
languages: [
{ shortCode: 'en', text: 'English' },
{ shortCode: 'pl', text: 'Polski' },
{ shortCode: 'es', text: 'Español' },
{ shortCode: 'pt', text: 'Portugues' }
],
fetchedLocale: '',
setLocale: null
}
}, (...)
经过一些处理后,fetchedLocale
获取上述数组中某些text
属性的值,例如“葡萄牙语”。
问题:在加载DOM元素时,如何更新v-select
以便设置fetchedLocale
的值,如“Portugues”之前提到的,而不是设置默认的空值?
答案 0 :(得分:4)
As per the documentation,item-value
道具定义了要用作每个项目的值的属性名称。此道具的默认值为'value'
,表示默认情况下,每个项目的value
属性将用作每个项目的值。例如,如果您将其设置为text
,则每个text
的{{1}}属性都将用作该项的值。但是,这实际上并没有设置选择组件的值。
您已经通过languages
将选择组件的值绑定到setLocale
。因此,如果您要将选择组件的值更改为v-model
值,只需使用值fetchedLocale
更新setLocale
,组件就会更新:
fetchedLocale
这是一个有效的例子:
this.setLocale = this.fetchedLocale
&#13;
new Vue({
el: '#app',
data() {
return {
languages: [
{ shortCode: 'en', text: 'English' },
{ shortCode: 'pl', text: 'Polski' },
{ shortCode: 'es', text: 'Español' },
{ shortCode: 'pt', text: 'Portugues' }
],
fetchedLocale: '',
setLocale: null
};
},
created() {
setTimeout(() => {
this.fetchedLocale = 'English';
this.setLocale = this.fetchedLocale;
}, 1000);
}
})
&#13;