如何从组件传递给父级单选按钮?

时间:2017-06-01 07:41:19

标签: javascript vue.js vue-component

我正在尝试复制组件中的parent-child communication。我们的想法是有一个基于单选按钮的双选组件,可以多次重复使用:

Object#send
Vue.component('chooser', {
  template: '<form> <input type="radio" value="hello" v-model="picked"> Hello<br><input type="radio" value="world" v-model="picked"> World<br></form>',
  data: function() {
    return {
      picked: null
    }
  },
  watch: {
    picked: function() {
      this.$emit('picked')
    }
  }
})

var vm = new Vue({
  el: "#root",
  data: {
    first: null,
    second: null
  }
})

我没有将组件中的信息反馈给父母,为什么?

1 个答案:

答案 0 :(得分:1)

您没有正确使用Vue.component('chooser', { template: '<form> <input type="radio" value="hello" v-model="picked"> Hello<br><input type="radio" value="world" v-model="picked"> World<br></form>', data: function() { return { picked: null } }, watch: { picked: function() { this.$emit('input', this.picked); } } }) var vm = new Vue({ el: "#root", data: { first: null, second: null } })功能。要模拟v-model,您应该发出类型&#39;输入&#39; (第一个参数)和相应的值(第二个参数)。

&#13;
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.3/vue.js"></script>
<div id="root">
  <chooser v-model="first"></chooser>
  Here I want to get choice one: {{first}}
  <chooser v-model="second"></chooser>
  Here I want to get choice two: {{second}}
</div>
&#13;
firstObject
&#13;
&#13;
&#13;