Для 1-й части, чтобы установить дату, попробуйте это:
ngOnInit() {
this.myForm = this.formBuilder.group({
users: this.formBuilder.array([
this.formBuilder.group(
{
startDate: [this.startDate],
endDate: [this.endDate]
},
{ validator: this.checkDates }
)
])
});
}
Для 2-й части попробуйте следующее: Таким образом, вы должны вручную коснуться ввода, или вы можете попробовать с помощью this.myForm.markAllAsTouched();
<mat-error *ngIf="myForm.controls['users'].controls[$index].controls['endDate'].touched && myForm.controls['users'].controls[$index].invalid">
End date cannot be earlier than start date
</mat-error>
или
<mat-error *ngIf="myForm.controls['users'].controls[$index].controls['endDate'].value != null && myForm.controls['users'].controls[$index].invalid ">
End date cannot be earlier than start date
</mat-error>