Angular 将任意元数据添加到FormControl
在声明表单模型时,是否有方法将任意元数据添加到Angular2+中的Angular 将任意元数据添加到FormControl,angular,angular-forms,Angular,Angular Forms,在声明表单模型时,是否有方法将任意元数据添加到Angular2+中的FormControl 比如: //在这个伪示例中,{foo:'bar}是元数据 const ctrl=new FormControl('some value',validator,asyncValidator,{foo:'bar'}); 我想使用此元数据存储特定控件的错误消息 注意:我可以将错误消息存储在单独的变量中,但我的每个字段都显示有一个自定义组件,该组件只接收一个@Input:FormControl实例。我希望避免声
FormControl
比如:
//在这个伪示例中,{foo:'bar}是元数据
const ctrl=new FormControl('some value',validator,asyncValidator,{foo:'bar'});
我想使用此元数据存储特定控件的错误消息
注意:我可以将错误消息存储在单独的变量中,但我的每个字段都显示有一个自定义组件,该组件只接收一个@Input:FormControl实例。我希望避免声明第二个输入来传递错误消息。您可以创建一个同时返回消息的验证器 例如:
static requiredValidator(message: string): ValidatorFn {
return (control: FormControl): { [id: string]: string | IValidatorMessages } => {
return (control && control.value && control.value.trim().length) ? undefined : { required: {
message: message,
valid: false
} };
};
}
您可以这样使用它:
this.form = this.fb.group({
email: ['', Utilities.requiredValidator('Message')]
});
然后在模板中的某个地方:
{{ form.get('email').errors?.required?.message }}