我正在使用rc4角度发布来编写一个应用程序,其中我必须施加几个验证规则以形成像required
,minlength
一些组件验证程序emailValidator
。Angular 2-错误:类型'AbstractControl'不可分配给'AbstractControl'类型
当我通过一个内置的,一个自定义验证到Validators.compose
功能,集成开发环境(二者Webstorm & VS码)显示我编译如下所示的一个时间错误消息:
然而,你可以看到在上面的屏幕截图中,如果两个验证器都是内置的,那么就没有错误信息。
static emailValidator(control: AbstractControl): {[key: string]: boolean} {
if (control.value.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/)) {
return null;
} else {
return {'invalidEmailAddress': true };
}
}
是的,我做到了。事实上,我首先使用从'AbstractControl'继承的'FormControl'。 –
@AJQarshi确切地说,这就是为什么这个错误是奇怪的,我通常首先声明FormControl ' this.emailControl = new FormControl('',Validators.compose([Validator.required,ValidatorService.emailValidator]),ValidatorService.checkEmai this._httpService)); ' 然后我将它分配给FormGroup输入对象的一个键 – Yoanribeiro