angular-reactive-forms - 如何清除 Angular Reactive Forms 中的 FormArray

标签 angular-reactive-forms angular2-formbuilder

我正在重置表格。它重置整个表单,但 FormArray 除外。

创建表单并在其中声明 formArray

createForm(){
    this.invoiceForm = this.formBuilder.group({
      'name': ['', Validators.required],
      'gst': [''],
      'currency': [''],
      'addressLine1': ['', Validators.required],
      'addressLine2': [''],
      'city': ['', Validators.required],
      'state': ['', Validators.required],
      'country': ['', Validators.required],
      'postalCode': ['', Validators.required],
      'email': ['', [Validators.required, Validators.email]],
      'invoiceparticulars': this.formBuilder.array([]),
      'isGstshidden' : true
    });

  }

尝试通过重置数据来修改传入数据中表单的详细信息,即使我调用了 reset() 函数 formArray 保留其中以前的条目。
 modifyInvoice(index){

   this.invoiceForm.reset();

   let modifyData = this.modifyInvoiceArray[index];
   console.log(modifyData);

   this.invoiceNumber = modifyData.invoiceNumber;
   this.invoiceForm.patchValue({name: modifyData.address.Name});
   this.invoiceForm.patchValue({email: modifyData.email});
   this.invoiceForm.patchValue({gst: modifyData.GSTnumber});
   this.invoiceForm.patchValue({addressLine1: modifyData.address.AddressLine1});
   this.invoiceForm.patchValue({addressLine2: modifyData.address.AddressLine2});
   this.invoiceForm.patchValue({city: modifyData.address.City});
   this.invoiceForm.patchValue({country: modifyData.address.Country});
   this.invoiceForm.patchValue({postalCode: modifyData.address.PostalCode});
   this.invoiceForm.patchValue({state: modifyData.address.State});
   console.log(modifyData['particulars']);
}

最佳答案

角 8

只需使用 clear() formArrays 上的方法:

(this.invoiceForm.controls['invoiceparticulars']).clear();

或者 :
let frmArray = this.invoiceForm.get('invoiceparticulars') as FormArray;
frmArray.clear();

关于angular-reactive-forms - 如何清除 Angular Reactive Forms 中的 FormArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50152443/

相关文章:

javascript - Angular:使用 ControlValueAccessor 自定义输入

angular - 响应式表单 - 将字段标记为已触摸

angular - 如何检查我的表单数组是否已经拥有该对象

angular - 在 ngFor 中有一个 mat-radio-button 与 Reactive Forms 一起使用

angular - 选项卡组件内的 formbuilder 在 Angular 6 中不起作用

Angular FormControl valueChanges 不起作用

angular - 如何使用 Angular2 Formbuilder 处理文件上传?

angular - 动态嵌套表单控件 Angular 2