Javascript 多个复选框,绑定到Vue JS中的同一数组

Javascript 多个复选框,绑定到Vue JS中的同一数组,javascript,vue.js,Javascript,Vue.js,我从vuejs和vue网格开始 我想在以下位置显示选中的行对象: <pre> {{ selected| json}} </pre> {{selected}json} 代码区 如文档中的“多个复选框,绑定到同一数组:”示例 正如我选中1复选框时所看到的,所有复选框都已选中。为什么会这样?如何解决这个问题?您在代码中做了一些错误的假设(主要是关于范围) 您在主实例中选择了数组,而不是演示网格组件,其中有复选框: <input @click="selectAl

我从vuejs和vue网格开始

我想在以下位置显示选中的行对象:

    <pre> {{ selected| json}} </pre>
{{selected}json}
代码区

如文档中的“多个复选框,绑定到同一数组:”示例


正如我选中1复选框时所看到的,所有复选框都已选中。为什么会这样?如何解决这个问题?

您在代码中做了一些错误的假设(主要是关于范围)

您在主实例中选择了
数组
,而不是
演示网格
组件,其中有复选框:

<input @click="selectAll" type="checkbox" v-model="selected" id="{{ entry.name }}" value="{{ entry.name }}"></td>
如果您这样将
选定的
属性传递到
演示网格中(并在道具中定义),您应该可以:

methods: {
    ...
    selectAll: function () {
       ...
    }
在这里,您可以看到一个工作示例:

您在代码中做了一些错误的假设(主要是在范围方面)

您在主实例中选择了
数组
,而不是
演示网格
组件,其中有复选框:

<input @click="selectAll" type="checkbox" v-model="selected" id="{{ entry.name }}" value="{{ entry.name }}"></td>
如果您这样将
选定的
属性传递到
演示网格中(并在道具中定义),您应该可以:

methods: {
    ...
    selectAll: function () {
       ...
    }
在这里,您可以看到一个工作示例:

您应该将所选的
键添加到组件的
数据中,而不是添加到vue的主实例中


您应该将所选的
键添加到组件的
数据中,而不是添加到vue的主实例中


谢谢您的详细回答!因此,在阅读时,我猜测是因为“selected”没有从vue实例传递到组件,所以它从未初始化,这导致了错误?是的,因为子组件没有自动访问其父组件的属性(除非它们通过
道具显式传递)。因此,您的
演示网格
试图操作一个不存在的
选定的
属性(在控制台中导致错误)。谢谢,这非常有帮助。感谢您提供详细的答案!因此,在阅读时,我猜测是因为“selected”没有从vue实例传递到组件,所以它从未初始化,这导致了错误?是的,因为子组件没有自动访问其父组件的属性(除非它们通过
道具显式传递)。因此,您的
演示网格
试图操作一个不存在的
选定的
属性(在控制台中导致错误)。谢谢,这很有帮助。