Я использую реактивные формы, если я редактирую значения, которые уже присутствуют в базе данных, они редактируются и сохраняются в этой конкретной строке, так как имеют уникальный идентификатор как agentw9id, но если я создаю новый элемент и редактирую его, он добавляется с новым идентификатором, поэтому я попытался с помощью этого метода, здесь, для индекса 0, он не работает, но для других значений он использовал для обновления, но он использовал go все значения во время окончательного сохранения вместо отправки измененное изменение вновь добавленных элементов.
DEMO: 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);
}
}