首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态设置v-select值?

如何动态设置v-select值?
EN

Stack Overflow用户
提问于 2017-09-23 00:23:07
回答 1查看 27.2K关注 0票数 5

我的Vuetify v-select元素看起来是这样的:

代码语言:javascript
复制
<v-select
   v-bind:items="languages"
   v-model="setLocale"
   label="Language:"
   auto prepend-icon="map"
   item-value="fetchedLocale"
   hide-details
   id="langSelect"
   >

data中,您可以找到:

代码语言:javascript
复制
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属性的值,例如“葡萄牙语”

问:如何更新v-select,以便在加载DOM元素时设置fetchedLocale的值,就像前面提到的"Portugues",而不是设置默认的空值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-23 01:12:50

As per the documentationitem-value属性定义要用作每一项的值的属性名称。这个属性的默认值是'value',这意味着默认情况下,每个项目的value属性将用作每个项目的值。例如,如果将其设置为text,则每个languagestext属性将用作该项的值。但是,这并不会实际设置select组件的值。

您已经通过v-model将select组件的值绑定到setLocale。因此,如果您想要将选择组件的值更改为fetchedLocale值,只需使用fetchedLocale的值更新setLocale,组件就会更新:

代码语言:javascript
复制
this.setLocale = this.fetchedLocale

下面是一个有效的示例:

代码语言:javascript
复制
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);
  }
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.min.js"></script>
<script src="https://unpkg.com/vuetify@0.15.7/dist/vuetify.js"></script>
<link href="https://unpkg.com/vuetify@0.15.7/dist/vuetify.min.css" rel="stylesheet"/>
<link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons' rel="stylesheet" type="text/css">

<div id="app">
  <v-app>
    <v-select
      :items="languages"
      v-model="setLocale"    
      label="Language:"
      auto prepend-icon="map"
      item-value="text"
      hide-details
      id="langSelect"
    ></v-select>
  </v-app>
</div>

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46369200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档