动态地动态创建选择选项

sen*_*nty 2 vue.js vue-component vuejs2

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

假设我有一个值数组

var values = ['Hello', 'world', 'etc']
Run Code Online (Sandbox Code Playgroud)

选择时

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>
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

这是在我的模板中选择的:

<select class="form-control" :id="selection">
    <option selected="" disabled="" value="0"></option>
</select>
Run Code Online (Sandbox Code Playgroud)

Nar*_*k-T 5

您可以仅为second的选项定义一个空数组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;
      }
    }
  }
})
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)