我正在尝试在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 });
}
这将创建一个单独的对象,我希望在一个对象中有标题和描述。该怎么办呢?
发布于 2018-08-19 23:44:26
您需要使用给定的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;
}
}
此外,将多个参数传递给emit不起作用,因此需要将它们包装在一个对象中。
updateAdditionalTitleForm(value, index) {
this.$emit('updateAdditionalTitle', {value,index});
},
updateAdditionalDescriptionForm(value, index) {
this.$emit('updateAdditionalDescription',{value,index});
}
https://stackoverflow.com/questions/51919211
复制相似问题