你可以有一个函数 getError
getError(control:any):string
{
if (control.errors)
{
if (control.errors.minlength)
return "Min lengh "+control.errors.minlength.requiredLength
if (control.errors.email)
return "invalid email"
....
}
return ""
}
你写一些像
<mat-error>
{{getError(form.get('email')}}
</mat-error>
更新从Netanet Basal 这个惊人的条目中窃取的想法,如果你定义一个像这样的对象,我们可以改进我们的函数 getError
export const defaultErrors = {
required: (error)=>"This field is required",
minlength: ({requiredLength,actualLength})=>"Expect "+requiredLength+" but got "+actualLength,
email:(error)=>"invalid email",
}
是的,是一个对象,每个属性都是一个函数
我们的函数 getError 就像
getError(control)
{
const firstKey = Object.keys(control.errors)[0];
return defaultErrors[firstKey]?defaultErrors[firstKey](control.errors[firstKey]):
"unknowed error"
}