Angular 2 custom validator with parameters

Here is a sample. It's a min value validator where you pass in a number to validate.

import {Control} from 'angular2/common';

export const minValueValidator = (min:number) => {
  return (control:Control) => {
    var num = +control.value;
    if(isNaN(num) || num < min){
      return {
         minValue: {valid: false}
      };
    }
    return null;
  };
};

More details can be found in the Custom Validators official documentation page.


The minValueValidator example basically shows that you can use a factory for your custom validator so it will be something like this:

static minValue = (num: Number) => {
    return (control:Control) => {
         var num = control.value;
         if (isNaN(num) || num < 5 ) { return {"minValue": true}; }
         return null;
    }
}

In my case I use FormControl not Control

import { FormControl } from '@angular/forms';