代码之家  ›  专栏  ›  技术社区  ›  Bhrungarajni

如何使用angular 8编辑行中新添加的项目

  •  0
  • Bhrungarajni  · 技术社区  · 4 年前

    我使用的是反应式表单,如果我编辑数据库中已有的值,它会被编辑并保存在特定的行中,因为它具有唯一的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);
    
    
            }
    
    }
    
    0 回复  |  直到 4 年前
        1
  •  0
  •   Krunal Thakur    4 年前

    我建议在实际的FormArray上循环。通过这种方式,您将获得每个控件。然后您可以将此控件传递给编辑功能。这样你就不用担心指数了。