我有一个v型复选框,它的值是从循环中分配的.

<div id="demo">
  <ul>
    <li v-for="mainCat in mainCategories">
      <input 
        type="checkbox" 
        :value="mainCat.merchantId"     
        id="mainCat.merchantId" 
        v-model="checkedCategories" 
        @click="check(checkedCategories)"
      > 
      {{mainCat.merchantId}}
    </li>
  </ul> 
  {{ checkedCategories }}
</div>

脚本:

var demo = new Vue({
  el: '#demo',
  data: {
    checkedCategories: [],
    mainCategories: [{
      merchantId: '1'
    }, {
    merchantId: '2'
    }] //testing with data use: [{done:false,content:'testing'}]
  },
  methods: {
    check: function(e) {
      console.log(this.checkedCategories,e)
    }
  }
})

Js小提琴:http://jsfiddle.net/bmpfs2w2/

推荐答案

使用@change而不是@click.单击事件在值真正更改之前触发.

<input type="checkbox" 
       :value="mainCat.merchantId" 
       id="mainCat.merchantId" 
       v-model="checkedCategories" 
       @change="check($event)">

http://jsfiddle.net/eLzavj5f/

Vue.js相关问答推荐

我可以将Created()中内置的内容传递给Provide属性吗?

在Vue 2中,是否可能在不创建组件的情况下注入代码块?

为什么 Vue 在将设置脚本中的计算(computed)属性渲染到模板时找不到变量

有没有办法将react 键作为值传递给由 v-for 创建的 v-model

纵横比元素溢出容器

Vuejs - 更新数组中对象的数组

是否可以让 html-webpack-plugin 从 css 生成