Ошибка с элементами управления и AbstractControls при построении формы - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть эта форма:

this.myForm = new FormGroup({
        points: new FormArray([
            new FormGroup({
                date: this.date,
                startTime: new FormControl(null, Validators.required),
                endTime: new FormControl(null, Validators.required),
            }),
            new FormGroup({
                date: this.date,
                startTime: new FormControl(),
                endTime: new FormControl(),
            }),
            new FormGroup({
                date: this.date,
                startTime: new FormControl(),
                endTime: new FormControl(),
            })
        ]),
    });

Когда я отправляю, у меня есть эта форма:

for (const group of (this.myForm.get('points') as FormArray).controls) {
            console.log(group);
            if (group.controls.date !== null) {
                if (group.controls.date.value !== null) {
                    group.controls.startTime.setValue(
                        group.controls.date.value + ' ' + group.controls.startTime.value
                    );
                    group.controls.endTime.setValue(
                        group.controls.date.value + ' ' + group.controls.endTime.value
                    );
                    group.controls.date.setValue(group.controls.date.value);
                }
            }
        }

Работает просто отлично, но когда я пытаюсь ng build --prod, у меня появляется ошибка: Property 'controls' does not exist on type 'AbstractControl'. Как я могу получить доступ к элементам управления FormGroup в FormArray?

Заранее спасибо.

1 Ответ

1 голос
/ 28 апреля 2020

Проблема в том, что вы должны привести группу специально к FormGroup следующим образом:

for (const group of (this.myForm.get("points") as FormArray).controls as FormGroup[]) {
...