我写了一个非常简单的表单控件验证器:
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 }; } }
原文地址:https://www.jb51.cc/angularjs/140350.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。