Javascript 将对象作为值绑定到数组属性的VueJS复选框在未选中时不会脱离数组

Javascript 将对象作为值绑定到数组属性的VueJS复选框在未选中时不会脱离数组,javascript,arrays,vue.js,checkbox,v-model,Javascript,Arrays,Vue.js,Checkbox,V Model,在我的一个VueJS组件中,我有一个名为selectedJobs的数组,用于html表中选中的html复选框。html表中的数据来自一个名为replenJobsList的对象数组 /* My Component */ <template> ... <table> ... <tr v-for="replenJob in replenJobsList"> <td> <input v-bind:id="'add-to-bat

在我的一个VueJS组件中,我有一个名为
selectedJobs
的数组,用于html表中选中的html复选框。html表中的数据来自一个名为
replenJobsList
的对象数组

/* My Component */
<template>
...
<table>
...
<tr v-for="replenJob in replenJobsList">
    <td>
        <input v-bind:id="'add-to-batch-' + replenJob.sku + replenJob.rplFrom + replenJob.replenTo"
            v-bind:value="{
                id: 0,
                manualMoveBatchId: 0,
                modifyDate: new Date().getTime(),
                moveFrom: replenJob.rplFrom,
                moveTo: replenJob.replenTo,
                sku: replenJob.sku,
                skuDescription: replenJob.description,
                status: 'active',
                units: replenJob.unitsToReplenish
            }"
            v-model="selectedJobs"
            type="checkbox">
        <label v-bind:for="'add-to-batch-' + replenJob.sku + replenJob.rplFrom + replenJob.replenTo"></label>
     </td>
</tr>
...
</table>
...
</template>
...
data() {
    return {
        selectedJobs: [],
    }
}
/*我的组件*/
...
...
...
...
...
数据(){
返回{
所选作业:[],
}
}
如果I
console.log(selectedJobs.length)
对于所有选中的复选框,它将为我提供正确的长度。但是,当我取消选中复选框并再次检查数组的长度时,复选框长度不会减少1

此外,如果我再次选中相同的复选框,它将向
selectedJobs
数组添加一个对象,而不是再次递减和递增


如何使复选框正确地添加和删除
selectedJobs
数组?

如果您在标记中创建对象,它将无法正确跟踪,您必须事先执行此操作。您可以使用计算属性

newvue({
el:“应用程序”,
数据:{
答复工作清单:[
{rplFrom:'example@example.com'答复:'foo@bar.com,sku:1,描述:'11111',unitsToReplenish:33},
{rplFrom:'example@example.com'答复:'foo@bar.com,sku:2,描述:'22222',unitsToReplenish:22},
{rplFrom:'example@example.com'答复:'foo@bar.com,sku:3,描述:'33333',unitsToReplenish:11},
],
所选作业:[],
},
计算:{
compJobsList(){
返回此.replenJobsList.map((作业,索引)=>({
id:索引,
manualMoveBatchId:0,
modifyDate:new Date().getTime(),
moveFrom:job.replFrom,
moveTo:job.replenTo,
sku:job.sku,
职位描述:职位描述,
状态:“活动”,
单位:job.unitsToReplenish,
}));
},
},
})

乔布斯
{{job.sku说明}
选中的作业:{{selectedJobs}

我不确定您是否可以将javascript对象设置为input.value。感谢您的响应。在问题中提供的示例中,我很难理解如何在表中实现这一点。你可以调整你的答案,我有我的模板设置?如果您需要其他信息,请告诉我。@aCarella我已将其更新为表结构。有什么你不明白的地方吗?我想
s把我甩了,我在理解如何在表中实现时遇到了困难。@StevenB。如何预先选中复选框(如果我想从数据库填充复选框)。例如,以下内容不起作用<代码>所选作业:[{rplFrom:'example@example.com'答复:'foo@bar.com,sku:1,description:'11111',unitsToReplenish:33}]@geeksalah您需要使用相同的对象实例。在创建的钩子中,您可以执行
this.selectedJobs.push(this.compJobsList[0])并且它会工作。看见