Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 将数组传递给子组件时的模型绑定_Vue.js - Fatal编程技术网

Vue.js 将数组传递给子组件时的模型绑定

Vue.js 将数组传递给子组件时的模型绑定,vue.js,Vue.js,我想做一件简单的事。我有一个实体表,每个实体都有一个复选框。另外,在表格标题中,有一个全局复选框,这样我可以一次选择所有实体 当我处理静态数据时,没有问题,一切正常。例如: data() { allUnitsSelected: false, units: [ { selected: false }, { selected: false }, { selected: false }, ] }, wat

我想做一件简单的事。我有一个实体表,每个实体都有一个复选框。另外,在表格标题中,有一个全局复选框,这样我可以一次选择所有实体

当我处理静态数据时,没有问题,一切正常。例如:

data() {
  allUnitsSelected: false,
  units: [
    {
      selected: false
    },
    {
      selected: false
    },
    {
      selected: false
    },
  ]
},

watch: {
  allUnitsSelected() {
    this.units.forEach((unit) => {
      unit.selected = this.allUnitsSelected
    })
  }
}
和HTML:

<thead>
  <tr>
    <th><input type="checkbox" v-model="allUnitsSelected"></th>
  </tr>
</thead>
<tbody>
  <tr v-for="unit in units" :class="{ selected: unit.selected }">
    <td>
      <input type="checkbox" id="checkbox" v-model="unit.selected">
    </td>
  </tr>
</tbody>
在HTML中,我使用item.units而不仅仅是units。v-for works和I-Get项目列表,但我无法更新其“selected”属性。在Vue inspector中的chrome开发工具中,我可以看到属性得到更新,但复选框没有

为什么会发生这种情况


提前感谢

您应该已经阅读了以下文档:


问题是,如果我更改了object vue.js数组中的元素,则在使用$set之前不会跟踪它…

应该阅读文档:


问题是,如果我更改对象vue.js数组中的元素,直到我使用$set…

才能跟踪它,您能提供一些您试图创建的组件的代码吗?Ehy Victor,如果您提供JSFIDLE,帮助您会容易得多。您能提供一些您试图创建的组件的代码吗?Ehy Victor,如果您提供了一个JSFIDLE,那么帮助您会容易得多。
export default {
  props: ['item'],
  data() {
     allUnitsSelected: false
  }
}