Как редактировать вновь добавленный элемент из строки, используя angular8 - PullRequest
0 голосов
/ 31 января 2020

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


        }

}

1 Ответ

0 голосов
/ 31 января 2020

Я бы порекомендовал зацикливание на реальном FormArray. Таким образом, вы получите каждый элемент управления. и затем вы можете передать этот элемент управления для редактирования функции. Таким образом, вам не нужно беспокоиться об индексе.

...