Angular Изменение элементов управления формы не обнаружено в OnChanges () - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть 2 компонента и 1 сервис для создания формы. Я отправляю форму управления второму компоненту из первого и связываю изменение формы с сервисом в первом. Когда я удаляю управление в форме через сервис, форма хорошо обновляется в первом компоненте, но не во втором. См. Код:

Компонент 1 .ts

export class AppFormComponent implements OnInit, OnChanges {
  form;
  frontForm: FormGroup = new FormGroup({});

  constructor(
    private formService: FormService,
  ) {}

  ngOnInit() {
      // GET FRONT FORM
      this.formService.getForm(this.form.form_id)
        .subscribe(form => {
          console.warn('Component 1 UPDATE');
          this.frontForm = form;
        });
    }
  }

  ngOnChanges(): void {
    console.warn(this.frontForm);
  }
}

Компонент 1. html

<app-section [tempForm]="frontForm.controls['form.' + form.form_id]"></app-section>

Компонент 2 .ts

export class AppSectionComponent implements OnInit, OnChanges {

  @Input() tempForm: FormArray;

  constructor() {}

  ngOnInit() {}

  ngOnChanges(): void {
    console.warn('COMPONENT 2 CHANGE');
  }
}

Когда я удаляю управление в сервисе, у меня есть «ОБНОВЛЕНИЕ компонента 1» из компонента 1, но не «ИЗМЕНЕНИЕ КОМПОНЕНТА 2». Если я изменю Компонент 1 html с этим входом:

 <app-section [tempForm]="frontForm"></app-section>

, я получаю "ИЗМЕНЕНИЕ КОМПОНЕНТА 2". Почему существует разница между frontForm и frontForm.controls ['form.' + form.form_id]?

Спасибо

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