I'm trying to make form fields required on a Reactive Form but the form is always valid, I'd expect it to be invalid until both fields were not empty.
https://stackblitz.com/edit/angular-ivy-y4jby5?file=src/app/app.component.html
import { Component, VERSION, OnInit } from "@angular/core";
import {Form, FormArray, FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent implements OnInit {
name = "Angular " + VERSION.major;
testForm = this.fb.group({
questions: this.fb.array([
this.fb.group(
[{testString: ['']}, Validators.required],
[{testString: ['']}, Validators.required]
)
])
});
constructor(private fb: FormBuilder) {}
ngOnInit() {
const control = this.testForm.get('questions') as FormArray;
control.push(this.fb.group(
{
testString: ['']
}, Validators.required)
)
}
get questionControls() {
return this.testForm.get('questions') as FormArray;
}
}
<form [formGroup]="testForm">
<ng-container formArrayName="questions">
<ng-container *ngFor="let question of questionControls.controls; let i = index">
<input type="text" [formGroupName]="i">
</ng-container>
</ng-container>
</form>
Is Form Valid: {{ testForm.valid }}