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

Dav*_*ave 3 vue.js

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

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

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

<custom-component v-model="some_boolean_value"></custom-component>
Run Code Online (Sandbox Code Playgroud)

acd*_*ior 7

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

Vue.component('custom-component', {
  template: '#custom',
  props: ['value']
})
new Vue({
  el: '#app',
  data: {
    some_boolean_value: true
  }
})
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)