【问题标题】:Vuejs 2: Change second select list according to firstVuejs 2:根据第一个更改第二个选择列表
【发布时间】:2017-05-16 15:46:20
【问题描述】:

我想根据第一个中的选定值更改第二个选择列表。当我为每个选择做两个 Vue 实例时,它起作用了,但我想做一个小应用程序,这样它就更干净了。

types JSON 数组需要在 Vue JS 之外。您可以在小提琴中看到它。

不知何故,我只是不知道如何更新第二个选择列表。

在我做了这样的事情并且它完美地工作之前:

// methods of first select (category)
methods: {
  update: function (value)
     this.options = types[value]
  }
}

...

// methods of second select (typselect)
methods: {
  onChange(event) {
    typselect.update(event.srcElement.value)
  }
}

应用程序:

<div id="app">

  <select v-model="category" v-on:change="onChange">
    <option>Choose</option>
    <option value="5">type1</option>
    <option value="6">type2</option>
    <option value="11">type3</option>
  </select>

  <select id="typselect">
    <option v-for="option in options" v-bind:value="option.value">{{ option.text }}</option>
  </select>

</div>

所以我把它换成这样的:

new Vue({
  el: '#app',

  data: {
    category: '5'
  },

  computed: {
    options: function(event) {
      console.log('should be called on change');

      let options = ''
      options = 1;
      //  options = types[event.srcElement.value]; // this would be so easy...
      return options
    }
  },

  methods: {
    onChange: function(e) {
      console.log(event.srcElement.value);
      this.options = this.options
    }
  }
})

但我只是不知道如何更新第二个选择列表。

来了一个小提琴: https://jsfiddle.net/Honkoman/g9g5uukr/2/

【问题讨论】:

标签: javascript vue.js vuejs2


【解决方案1】:

你的计算应该是这样的。

computed: {
  options: function(event) {
    return types[this.category]
  }
},

更新fiddle

【讨论】:

  • 嗯,这很简单:)
  • @Mike 并不总是很难:)
猜你喜欢
  • 1970-01-01
  • 2015-10-15
  • 2023-04-02
  • 2012-05-21
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
相关资源
最近更新 更多