как отключить один из элементов управления массива формы в angular 9 - PullRequest
0 голосов
/ 14 июля 2020

У меня есть форма, и в этой форме у меня есть formArray.

  InitialFrom(): void {
this.addElectricMoneyFG = this.fromBuilder.group({
  hasAccountNumber: [this.showMoreInfo],
  moreAccountInfo: ['', null],
  description: [''],
  locales: this.fromBuilder.array([]),
  published: [false]
})

formArray:

selectedLanguage(langId): FormGroup {
return this.fromBuilder.group({
  languageId: [langId],
  name: [''],
  moreAccountInfo: ['']
})

}

При нажатии на переключатель, который я хочу, moreAccountInfo в formArray будет disabled.

Я написал этот код:

this.f.hasAccountNumber.valueChanges.subscribe(check => {
  this.showMoreInfo = check;
  if (check) {
     this.f.locales['controls'][0]['controls']['moreAccountInfo'].enabled;
  } else {
    this.f.locales['controls'][0]['controls']['moreAccountInfo'].enabled;
  }
  this.f.locales.updateValueAndValidity();
  this.cdRef.detectChanges()
})

Не сработало, бросил эта ошибка:

this.f.locales.controls[0].controls.moreAccountInfo.disabled is not a function

1 Ответ

0 голосов
/ 14 июля 2020

Вам необходимо следовать этому методу.

 (<FormArray>this.testForm.get("locales")).controls[0].get('moreAccountInfo').disable()

Если вы хотите отключить всю форму индекса 0.

(<FormArray>this.testForm.get("locales")).controls[0].disable()

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...