Рассчитать значение элемента управления группы форм в соответствии со значениями других элементов управления, используя угловой 6 - PullRequest
0 голосов
/ 11 июня 2019

У меня есть поле формы, которое называется "totalMembers".Это значение будет суммой некоторых типов членов (таких как число детей, число студентов ... и т. Д.), Которые мы выбираем.Поэтому следует динамически изменять его значение и отображать в окне одновременно с самим собой.Я хотел бы знать, есть ли способ написать собственный метод внутри самой группы форм (например, пользовательская проверка) для обновления ее значения.

Ниже приведена моя группа форм

testform: FormGroup;

this.testform = this.formBuilder.group({
      numberofchildren: [0, Validators.required],
      numberofstudents: [0, Validators.required],
      handicapped: [0, Validators.required],
      numberoftestnumbers: [0, Validators.required],
      totalMembers: [0, Validators.required],
      comments: ['', Validators.required],
    });

1 Ответ

1 голос
/ 11 июня 2019

Вы можете подписать событие valueChanges следующим образом:

this.testform.get('numberofchildren').valueChanges.subscribe((value: string) => {
  // code logic here
  this.updateForm.get('totalMembers').setValue('something');
  this.updateForm.get('totalMembers').updateValueAndValidity({ onlySelf: true, emitEvent: false });
});
this.testform.get('numberofstudents').valueChanges.subscribe((value: string) => {
  // code logic here
  this.updateForm.get('totalMembers').setValue('something');
  this.updateForm.get('totalMembers').updateValueAndValidity({ onlySelf: true, emitEvent: false });
});
// others form control ...

Другим способом можно связать ngModel и использовать ngModelChange событие

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