Vuejs - 当复选框为 checked/unchecked 时如何更改 属性 的值并更新相同的值

Vuejs - How do I change the property's value when Checkbox is checked/unchecked and update the same

我有两个组件,我正在尝试更新组件,我正在尝试根据选中或未选中的复选框更改 属性 的值。我无法更改 属性.

的值

这是我的代码:

ComponentA.vue

 **Template**

 <div class="column" v-for="car in cars">
    <label class="label">
      <input type="checkbox" v-model="carsSelected" @change="onChange" >
      {{ car }}
    </label>
  </div>

  **Script**

    data () {
       return {
         carsSelected: {},
         cars: {
          hyundai,
          maruthi,
          audi,
        }
      }
      ...
        onChange(){
      this.$emit('input', this.carsSelected)   .--->  For updating
    }

ComponenrB.vue

     <component-a v-model="fourWheeler.brands" />
     ...
     fourWheeler: {}

下面是 fourWheeler.brands 的样子:

     **It is an object**
       
       {
         hyundai: false,
         maruti: false,
         audi: true,
       }

我想根据选中或未选中来更改汽车品牌的值,即 fourWheeler.brands,如果复选框未选中则为 false,如果选中则为 true。请让我知道如何更新值和更好的绑定方式。

由于复选框仅指示它是否被 select 编辑,因此您不能 select 只有一个复选框的多个值,但是您可以使用您的汽车对象来呈现选项:

<template>
  <main>
   <label v-for="(value,key) in cars" :key="key" :for="key">
     {{key}}
     <input  type="checkbox" :id="key" v-model="cars[key]" @change="onChange"/>
   </label>
 </main>
</template>

<script>
 export default {
  data(){
   return {
     cars: {
         hyundai:false,
         maruthi:false,
         audi:false,
     }
   }
 },
 methods:{
   onChange(){
     console.log(this.cars)
   }
 }
 }
</script>

如您所见,我正在做的是遍历汽车属性并为每个属性(每辆汽车)显示一个复选框,然后 v-model 正在更改汽车的特定 属性对象,因此如果您在 onChange 中对汽车对象执行 console.log,现在您会看到带有 select 离子的汽车对象。值得注意的是,我更改了汽车对象,因此它包含汽车名称和 true/false for selected.