没有v-model的{Vue.JS复选框

时间:2018-04-10 17:32:20

标签: vue.js

尝试在不使用v-model的情况下创建复选框

<input type="checkbox" :value="value" @change="$emit('input', $event.target.checked)" />

复选框将选中并取消选中,输入事件将发送给父级,但值不会更改。我的父组件如下所示:

<custom-component v-model="some_boolean_value"></custom-component>

1 个答案:

答案 0 :(得分:3)

对于复选框,请使用:checked代替:value。见下面的演示。

&#13;
&#13;
Vue.component('custom-component', {
  template: '#custom',
  props: ['value']
})
new Vue({
  el: '#app',
  data: {
    some_boolean_value: true
  }
})
&#13;
<script src="https://unpkg.com/vue"></script>

<div id="app">
  <p>some_boolean_value: {{ some_boolean_value }}</p>
  <custom-component v-model="some_boolean_value"></custom-component>
</div>

<template id="custom">
  <div style="border: 2px dashed red;">
    <input type="checkbox" :checked="value" @change="$emit('input', $event.target.checked)" />
  </div>
</template>
&#13;
&#13;
&#13;