我使用的是反应式表单,如果我编辑数据库中已有的值,它会被编辑并保存在特定的行中,因为它具有唯一的id agentw9id,但如果我创建新项目并编辑它,它会用新的id添加,所以我尝试了这种方法,在这里,对于索引0,它不起作用,但对于它用来更新的其他值,它过去会在最终保存时删除所有值,而不是发送新添加项目的编辑更改。
演示:
DEMO
TS:
saveW9Details(item) {
this.addButtonDisable = false;
if(this.employee ) {
if(item.agentW9id.value) {
for(var i=0;i<this.employee.length;i++){
if(this.employee[i].agentW9id===item.agentW9id.value){
this.employee[i].taxId=item.taxId.value;
this.employee[i].businessType=item.businessType.value;
this.employee[i].signatureDate=item.signatureDate.value;
this.employee[i].agentW9id = item.agentW9id.value;
// updated=true;
this.temporaryControls.push(this.employee[i]);
this.getFormData.removeAt(i)
}
}
} else {
var temp={
taxId:item.taxId.value,
signatureDate:item.signatureDate.value,
businessType: item.businessType.value,
agentW9id:item.agentW9id.value,
originalFileName:item.fileName.value?item.fileName.value.slice(12):''
}
if(this.employee) {
this.employee.push(temp);
this.temporaryControls.push(temp)
}
// this.getFormData.removeAt(item)
}
} else {
console.log(item,"dsds")
let temp={
taxId:item.taxId.value,
signatureDate:item.signatureDate.value,
businessType: item.businessType.value,
agentW9id:item.agentW9id.value,
businessName: item.businessName[0].value,
originalFileName:item.fileName.value?item.fileName.value.slice(12):''
};
this.temporaryControls.push(temp)
}
this.getFormData.removeAt(item);
}
}