Если вы console.log
ваш event.container.data
и this.form.contactFormSections
во время вашего метода перетаскивания, вы увидите, что они оба совпадают после вашего перетаскивания в списке.
drop(event: CdkDragDrop<string[]>) {
moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
console.log(event.container.data);
console.log(this.form.contactFormSections);
}
То, где ваша логика становится "отделенной", заключается в том, что вы используете шаблонно-управляемые формы в своем html #formBuild="ngForm"
... это изолированная форма, которая "отделена" от компонента
Вам нужно будет использовать reactive forms
, чтобы решить эту проблему.Создайте FormGroup
на основе ваших разделов и манипулируйте группой форм, это обеспечит «привязку» вашего базового массива к представлению и синхронизирует все.
https://angular.io/guide/reactive-forms
Подробное объяснениео том, как использовать динамические реактивные формы и отправлять значения из них.
Динамическая форма с использованием * ngFor и отправка значений из нее