一直在考虑为表格实施一个非同步custom validator,其唯一目的是与微服务进行通信,从一个人的身份证号码(如年龄,出生日期,性别,种族等)中提取信息,当然,身份证号码是否有效,取决于他们发送的国家。
因此,如果某个人输入了他们的身份证号码并选择了一个国家/地区,则会向微服务部门发出请求,如果他们没有设置性别,则会自动填充该数据,之后他们可以将其更改为需要。
问题
任何帮助将不胜感激:)
答案 0 :(得分:1)
就像我在评论中所说的那样,验证器不应该设置或更新表单控件,组或数组的值。它应该只验证。
然而,您可以使用.valueChanges
收听表单的更改,并在回调检查中是否有某个控件有效,相应地更新其他控件。
以下是一个例子:
this.form.get('someControl').valueChanges(() => {
if (this.form.get('someControl').valid) {
this.form.get('someOtherControl').setValue(true);
}
});