У меня есть 2 выбора, один с данными, а другой пустой. Когда выбирается первый, я ловлю его переключателем. Теперь, в зависимости от значения, я хочу создать элементы option и поместить их в пустой 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>
2
senty 3 Авг 2017 в 23:39

1 ответ

Лучший ответ

Вы можете просто определить пустой массив для параметров для второго 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>
6
Narek-T 3 Авг 2017 в 23:55