Forked from JohannesHoppe/get-form-validation-errors.ts
Created
October 14, 2019 09:15
-
-
Save domagoj03/befeb17c17ff3ede2d36b8f59f0ad6a6 to your computer and use it in GitHub Desktop.
Get all validation errors for Angular FormGroup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import {FormGroup, ValidationErrors} from '@angular/forms'; | |
export interface IFormError { | |
control: string; | |
error: string; | |
value: any; | |
} | |
export function getFormValidationErrors(form: FormGroup) { | |
const result = []; | |
Object.keys(form.controls).forEach(key => { | |
const formProperty = form.get(key); | |
if (formProperty instanceof FormGroup) { | |
result.push(...getFormValidationErrors(formProperty)) | |
} | |
const controlErrors: ValidationErrors = formProperty.errors; | |
if (controlErrors) { | |
Object.keys(controlErrors).forEach(keyError => { | |
result.push({ | |
'control': key, | |
'error': keyError, | |
'value': controlErrors[keyError] | |
}); | |
}); | |
} | |
}); | |
return result; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It seems this won't catch cross validations on the form groups. Is that true?