angular - Angular 7 & Angular Material - 验证器未显示 MinLength 错误
问题描述
我正在使用 Angular 7 和 Angular Material,我的代码存在一个我无法解决的小问题。如果有的话,下一段代码应该返回一个带有我的消息错误的字符串:
getPasswordErrorMessage() {
return this.passwordFormControl.hasError('required') ? 'Password is required' :
this.passwordFormControl.hasError('minLength') ? 'Password must be at least 6 characters long' : '';
}
它应该显示在mat-error
标签之间:
<mat-form-field>
<input matInput minlenght="6" type="password" placeholder="Password" [formControl]="passwordFormControl" [errorStateMatcher]="matcher">
<mat-error *ngIf="passwordFormControl.invalid">
{{ getPasswordErrorMessage() }}
</mat-error>
</mat-form-field>
无论哪种方式,只显示“必填字段”错误。不显示 minLength 错误是否有原因?
解决方案
这是因为您如何设置返回错误的功能。三元将返回第一个匹配项,而不关心下一个匹配项。
getPasswordErrorMessage() {
let error = '';
error = this.passwordFormControl.hasError('required') ? 'Password is required' : '';
error = this.passwordFormControl.hasError('minLength') && error ? `${error} *
Password must be at least 6 characters long` : this.passwordFormControl.hasError('minLength') ? 'Password must be at least 6 characters long' : '';
return error;
}
这应该可以解决问题。
推荐阅读
- r - 包中涉及 std::transform 的 Rcpp 代码的兼容性
- c++ - 正确的 CMake 项目配置
- webpack - VScode:如何从 jsconfig 快捷方式中指定的快捷方式路径自动完成 json/scss/image 文件路径
- python - 无法使用请求找到特定标头
- amazon-web-services - UpdateExpression:将其他属性的值添加到列表中
- rdf - 关闭 PropertyShape 有什么影响?
- python - Flask API 无法使用 Docker 连接到 MySQL db
- macos - 从函数运行 adb 时出现“找不到命令”,但不是以其他方式运行
- mongodb - MongoDB 客户端字段级加密 AWS KMS 连接的代理
- c - “链接器”输入未使用 [-Wunused-command-line-argument]