我正在使用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