我正在尝试在Vue.js的空数组中插入或更新已存在的对象:
additionalFields: [
{
name: '',
description: ''
}
]
我正在从子组件中获取数据:
updateAdditionalTitleForm(value, index) {
this.$emit('updateAdditionalTitle', value, index);
},
updateAdditionalDescriptionForm(value, index) {
this.$emit('updateAdditionalDescription', value, index);
}
我正确接收了数据,只是似乎没有在给定索引处正确插入或更新它们:
adaptAdditionalTitleForm(value, index) {
this.form.additionalFields.push({ title: value });
},
adaptAdditionalDescriptionForm(value, index) {
this.form.additionalFields.push({ description: value });
}
这将创建一个单独的对象,我想在一个对象中包含标题和描述。该怎么办?
答案 0 :(得分:0)
您需要使用给定的index
参数来更新additionalFields
数组中的特定对象字段。
adaptAdditionalTitleForm(obj) {
if(!obj.index || (obj.index && obj.index>=this.form.additionalFields.length)){
this.form.additionalFields.push({title:object.value,description:''})
}else if(obj.index) {
this.form.additionalFields[obj.index].title= obj.value;
}
},
adaptAdditionalDescriptionForm(obj) {
if(!obj.index || (obj.index && obj.index>=this.form.additionalFields.length)){
this.form.additionalFields.push({description:obj.value,title:''})
}else if(obj.index){
this.form.additionalFields[obj.index].description=obj.value;
}
}
也无法传递多个参数来发射,因此您需要将它们包装在一个对象中。
updateAdditionalTitleForm(value, index) {
this.$emit('updateAdditionalTitle', {value,index});
},
updateAdditionalDescriptionForm(value, index) {
this.$emit('updateAdditionalDescription',{value,index});
}