Skip to content

Instantly share code, notes, and snippets.

@MarsiBarsi
Created June 11, 2020 10:54
Show Gist options
  • Save MarsiBarsi/e204280a9f26781f6e1a310d375e8255 to your computer and use it in GitHub Desktop.
Save MarsiBarsi/e204280a9f26781f6e1a310d375e8255 to your computer and use it in GitHub Desktop.

Revisions

  1. MarsiBarsi created this gist Jun 11, 2020.
    22 changes: 22 additions & 0 deletions mark-control-and-update.ts
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    import {AbstractControl, FormArray, FormGroup} from '@angular/forms';

    export function markControlAsTouchedAndValidate(control: AbstractControl) {
    if (control instanceof FormArray) {
    control.controls.forEach(nestedControl => {
    markControlAsTouchedAndValidate(nestedControl);
    });

    return;
    }

    if (control instanceof FormGroup) {
    Object.values(control.controls).forEach(nestedControl => {
    markControlAsTouchedAndValidate(nestedControl);
    });

    return;
    }

    control.markAsTouched();
    control.updateValueAndValidity();
    }