Search code examples
angularangular-formsangular-formbuilder

How to send array to angular custom validator


This is my validator function. I need to pass the array of barcodes from my component. I have tried so many ways but nothing works.

 checkBarcodes(control: AbstractControl): { [key: string]: boolean } | null {
        let barcodes = ["6456", "6545", "2", "2", "121", "22", "11111", "22222"]
        for (let code of barcodes) {
            if (code == control.value) {
                return {
                    isValid: true
                }
            }
        }
        return null
    }

Solution

  • export function checkBarcodes(barcodes): ValidatorFn  {
    
        return (control : AbstractControl) : ({ [key: string]: boolean } | null) => {
            for (let code of barcodes) {
                if (code === control.value) {
                    return  null ;
                }
            }
            return {'codeInvalid': true} ;
        }
    }