我找不到有关角度的自定义表单控件的指南

时间:2019-03-05 12:15:16

标签: angular validation form-control

我尝试为角形表格开发一个自定义控件日期/时间选择器,其中包含角材料的日期选择器和第三方时间选择器。它正常工作,我实现了一个接口ControlValueAccessor,所以一个值进入控件的内部和外部,但是验证存在问题。我在控件中使用内部表单,并希望使用有效表单的状态将其传播到外部,并在控件中实现Validator接口,如下所示:

validate(c: AbstractControl) {
  return this.form.valid ? null : { dateTimePickerValidator: true };
}

我发现一个问题,就是外部服务人员在模型更新后外部形式无效,因此在调用validate函数时this.form.valid为false,但之后为true-我可以通过输出形式进行跟踪。通过console.log在html或NgForm实例中有效。这真是奇怪的行为,我找不到该错误的根源。

更新: 我发现在验证方法调用期间禁用了表单。但是我不明白为什么禁用它。我没有代码可以在主机模板中禁用控件本身上仅禁用的属性。

那么有什么指南描述如何实现自定义控件?这个想法只是使用内部控件验证器来检查值并将错误传播到外部。

谢谢!

0 个答案:

没有答案