为了账号安全,请及时绑定邮箱和手机立即绑定

vue v-model 循环绑定数据 问题

vue v-model 循环绑定数据 问题

慕哥9229398 2019-05-09 22:23:15
vuev-model循环绑定数据不同输入框,数据却同步了。为什么?相关代码vue测试无1个2个3个4个信息{{key+1}}{{child}}{{customerInfo.babyInfoJson}}letvue=newVue({el:'#app',data(){return{baby:{babyName:''},customerInfo:{babyCount:'',babyInfoJson:[],}}},methods:{setChildList(){letlength=parseInt(this.customerInfo.babyCount,10);if(length
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

letbaby=this.baby;
for(leti=0;ithis.customerInfo.babyInfoJson.push(baby);
}
问题在这段,对象是引用类型,你没有做隔离直接push会导致数组内的所有对象都指向同一个地址。
letbaby=this.baby;
for(leti=0;ithis.customerInfo.babyInfoJson.push({...baby});
}
做个浅拷贝隔离对象引用即可
                            
查看完整回答
反对 回复 2019-05-09
?
holdtom

TA贡献1805条经验 获得超10个赞

楼上说的对,baby是引用类型,应该每次push一个新的对象,参考我下面的代码
methods:{
initBady(){return{babyName:''}},
setChildList(){
letlength=parseInt(this.customerInfo.babyCount,10);
if(length<=0){
this.customerInfo.babyInfoJson=[];
return;
}
this.customerInfo.babyInfoJson=[];
for(leti=0;iletbaby=this.initBady();
this.customerInfo.babyInfoJson.push(baby);
}
},
}
                            
查看完整回答
反对 回复 2019-05-09
  • 2 回答
  • 0 关注
  • 1557 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信