我有角度2的数据驱动表格。
在其中一个控件中我有一个自定义验证器。
如果我在使用验证器的控件具有某个值时使用this.myForm.reset()
,则验证器会崩溃并抛出错误。
如果我没有在任何地方使用this.myForm.reset()
方法,那么自定义验证器的效果非常好!
自定义验证器使用角度组件中由npm安装的包。 验证器如下:
phoneNumberValidator (control: FormControl): {[s: string]: boolean} {
if (!validator.isMobilePhone((<string>control.value), 'en-IN')) {
return {phoneNumberValidator: true};
}
return null;
}
我使用验证器如下:
'phoneNumber': new FormControl('', [
Validators.required,
Validators.maxLength(14),
this.phoneNumberValidator
])
正如我所提到的,验证器在没有myform.reset()
的情况下正常工作
我使用的npm包是this
我尝试过使用ngForm,但我想这是针对模板驱动的表单。
答案 0 :(得分:2)
您使用phoneNumberValidator
控件的phoneNumber
插件似乎至少应为空字符串。因此,您在重置表单时将该值设置为空字符串。
this.myForm.reset({'phoneNumber': ''})
//OR
//this.myForm.resetForm({'phoneNumber': ''})