Не удается получить изменения от дочернего компонента во вложенной угловой форме

#angular #typescript #nested-forms

#угловой #typescript #вложенные формы

Вопрос:

У меня проблема с получением изменений от дочернего компонента во вложенной угловой форме, эта форма является динамической формой, в которую можно добавить новый элемент.

Я опубликую часть своего кода

 <div *ngFor="let evForm of evFormData.controls; let evseIndex = index">
      <div [formGroup]="evForm" class="column-separator">


<div
              *ngFor="let contact of evForm.get('contacts').controls; let contactIndex = index">
              <div [formGroupName]="contactIndex">
                <div fxLayout="row" class="parameterWrapper">
                  <div class="parameterLabel step">connectorType</div>
                  <modification-dropdown
                  controlName="contactType"
                  [group]="connector.controls.connectorType"
                  [formControlValue]="contact"
              
                  ></modification-dropdown>

....

  

и этот дочерний компонент выглядит следующим образом:

 <label [formGroup]="group">
  <div fxLayout="row">
    <select class="parameterInputSelect" [formControlName]="controlName">
      <option *ngFor="let value of enumValues" [value]="value">
        {{value}}</option>
    </select>
  </div>
</label>
  

и файл ts выглядит следующим образом:

 export class ModificationDropdownComponent implements OnInit {
  @Input() group: FormGroup;
  @Input() enumValues: string[];
  @Input() controlName: string;
  @Input() formControlValue: any;

  constructor(public fb: FormBuilder) { }

  ngOnInit(): void {
    console.log(this.formData);
    this.formGroup = this.fb.group({
      [this.controlName]: new FormControl(this.formData)
    });
  }

  get formData(): FormGroup {
    return this.formControlValue?.value[this.controlName] as FormGroup;
  }

}
  

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

Может быть, я что-то сделал не так, какие-либо решения?

Комментарии:

1. У вас есть родительский form элемент? Похоже, что в вашем шаблоне его нет.

2. Вы имеете в виду, что у вас есть динамическая часть вашей формы, которую вы можете добавлять и удалять? Если это так, вам нужно определить массив формы как свойство вашей группы форм?

3. Привет, Бен, я снова отредактировал свой пост и добавил форму paremtn

4. Привет, Даррен, я думаю, что массив формы будет использоваться только в том случае, если входное значение является объектом массива, не так ли?