Angular2如何将参数传递给自定义表单控件验证器?

我写了一个非常简单的表单控件验证器:
import { Directive } from '@angular/core';
import { AbstractControl,NG_VALIDATORS } from '@angular/forms';

function checkBoxrequiredValidator(c: AbstractControl) {
    return c.value ? null : {
        required: true
    };
}



@Directive({
    selector: '[checkBox-required-validator]',providers: [
        { provide: NG_VALIDATORS,multi: true,useValue: checkBoxrequiredValidator }
    ]
})
export class CheckBoxrequiredValidator {

}

我想传递一个消息参数给我,我可以返回.我试过这个,但它不起作用:

function checkBoxrequiredValidator(c: AbstractControl,msg) {
    return c.value ? null : {
        message: msg
    };
}


@Directive({
    selector: '[checkBox-required-validator]',useValue: checkBoxrequiredValidator }
    ]
})
export class CheckBoxrequiredValidator {
    @Input('checkBox-required-validator') msg:  = 'default message';

}

任何帮助,将不胜感激

您可以将指令本身作为验证器.这样您就可以使用消息输入.
import { forwardRef } from '@angular/core';
import { Validator } from '@angular/forms';

@Directive({
  selector: '[checkBox-required-validator]',providers: [
    { 
      provide: NG_VALIDATORS,useExisting: forwardRef(() => CheckBoxrequiredValidator )
    }
  ]
})
export class CheckBoxrequiredValidator implements Validator {
  @Input('checkBox-required-validator') msg  = 'default message';

  validate(c: AbstractControl) {
    return c.value ? null : {
      required: this.msg
    };
  }
}

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...