Удаление FormControl из formArray - PullRequest
0 голосов
/ 26 февраля 2020

Я создал свою группу FormGroup, как показано ниже

this.GSTNForm = this.formbuilder.group({
      gstRegistrationStatusId: new FormControl(''),
      reasonForNonApplicabilityofGST: new FormControl(''),
      isExemptGoods: new FormControl(false),
      goodServiceRemarks: new FormControl(''),
      gstandbankDetails: this.formbuilder.array([
        this.formbuilder.group({
          _id: new FormControl(''),
          sequenceNo: new FormControl(this.gstnSequenceValue),
          gstn: new FormControl(''),
          addressline1: new FormControl(''),
          addressLine2: new FormControl(''),
          stateCode: new FormControl(''),
          cityCode: new FormControl(''),
          countryCode: new FormControl(''),
          pinCode: new FormControl(''),
          accountHolderName: new FormControl(''),
          accountTypeId: new FormControl(''),
          bankName: new FormControl(''),
          branchName: new FormControl(''),
          bankCountryCode: new FormControl(''),
          accountNo: new FormControl(''),
          ifscCode: new FormControl(''),
          micrCode: new FormControl(''),
          swiftCode: new FormControl('')
        })
      ])
    });

Я хочу удалить _id formcontrol, так как элементы управления сложны, я не знаю, как их удалить. Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Ключевым моментом здесь является навигация по структуре вашей формы. Добравшись до группы форм, в которой находится _id, вы можете использовать removeControl('_id') для удаления элемента управления.

const arr: FormArray = this.GSTNForm.get('gstandbankDetails') as FormArray;
const grp: FormGroup = arr.get('0') as FormGroup;
grp.removeControl('_id');

Я создал шаг для каждой навигации, но вы можете заключить его в один гигантский вызов, если вы будете sh.

Я бы предпочел сохранить вложенную группу форм как свойство, тогда вы можете просто позвонить:

this.nestedGroup.removeControl('_id');

DEMO: https://stackblitz.com/edit/angular-vmtzaw

0 голосов
/ 26 февраля 2020

Вы можете использовать removeControl

this.GSTNForm.get('gstandbankDetails').controls[0].removeControl('_id')
...