带参数的Angular 2自定义验证器

roo*_*ook 22 validation parameters angular

如何在Angular 2中创建我自己的maxLength验证器?我可以找到的所有示例都使用类似于'required'的验证器,这意味着他们已经知道规则.他们只接受一个参数 - 控制本身.如何传递更多参数?

这是我的样本验证器.如何修改它以将数字5作为参数传递?

export class MyValidators {
    static minValue(control:Control): {[s: string]: boolean} {
        var num = +control.value;
        if (isNaN(num) || num < 5 ) { return {"minValue": true}; }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

TGH*_*TGH 32

这是一个例子.它是一个最小值验证器,您传入一个数字进行验证.

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;
  };
};
Run Code Online (Sandbox Code Playgroud)

更多详细信息可在Custom Validators官方文档页面中找到.

  • 如何将变量值传递给此验证器?我注意到它总是期望字符串常量像<elem minValueValidator ="5">并且不允许我做<elem minValueValidator = {{a}}> (11认同)