angular自定义表单控件,解决错误No value accessor for form control with name: ‘xxx‘

目标:自定义表单控件(FormControl),增加灵活性和复用性。
场景:自定义组件作为表单控件,添加formControlName获取值。
报错:No value accessor for form control with name: ‘xxx’。
原因:将name绑定到了一个没有对应’value’的地方,或者说是找不到获取对应的’value’的通道。

解决方法1:添加ngDefaultControl元素

ngDefaultControl元素是基于DefaultValueAccessor指令的。
官方文档说明:

  1. DefaultValueAccessor是默认的ControlValueAccessor(值访问器),用于写入值,侦听输入元素的更改,该访问器由FormControlDirectiveFormControlNameNgModel指令使用。
  2. 默认情况下,此值访问器用于