动态创建选择选项

时间:2017-08-03 20:39:19

标签: vue.js vuejs2 vue-component

我有两个选择,一个是数据,另一个是空。当选择第一个时,我使用开关捕获它。现在,根据值,我想创建选项元素并将它们放在空的select中。

假设我有一个值数组

var values = ['Hello', 'world', 'etc']

选择时

selected(event) {
  var name;
  switch (event.target.value) {
    case 'roth':
       // append values as options into select, using foreach
       // such as:
       // <option value="hello">Hello</option>
    ...
  }
}

在我的模板中选择:

<select class="form-control" :id="selection">
    <option selected="" disabled="" value="0"></option>
</select>

1 个答案:

答案 0 :(得分:3)

您可以为第二个select的选项定义一个空数组,并使用您的开关/案例推送值。稍后您可以将这些值与v-for一起使用 例如:

new Vue({
  el: '#app',
  data: {
    selectValues: ['Hello', 'world', 'etc'],
    secondarySelectValues: [],
  },
  methods: {
    handleChange: function(e) {
      switch (e.target.value) {
        case 'Hello':
          this.secondarySelectValues = [];
          this.secondarySelectValues.push('this', 'is', 'hello');
          break;
        case 'world':
          this.secondarySelectValues = [];
          this.secondarySelectValues.push('this', 'is', 'world')
          break;
        case 'etc':
          this.secondarySelectValues = [];
          this.secondarySelectValues.push('this', 'is', 'etc')
          break;
      }
    }
  }
})
<script src="https://unpkg.com/vue@2.4.2"></script>
<div id="app">

  <select class="form-control" @change="handleChange">
    <option v-for="selectValue in selectValues" :value="selectValue">{{ selectValue }}</option>
  </select>

  <select class="form-control secondary">
    <option v-for="secondarySelectValue in secondarySelectValues" :value="secondarySelectValue">{{ secondarySelectValue }}</option>
  </select>

</div>