【发布时间】:2018-04-16 10:12:07
【问题描述】:
我使用响应式表单验证,并且每个输入字段都有几个条件。 我不想一次显示所有错误,我正在寻找一种实现这一点的好方法。目前我的代码如下所示:
<div class="err-msg"
*ngIf="stbForm.get('firstName').invalid && (stbForm.get('firstName').dirty || stbForm.get('firstName').touched)">
<ng-container *ngIf="stbForm.get('firstName').hasError('minlength')">
Name musg have at least {{stbForm.get('firstName').getError('minlength').requiredLength}} characters
</ng-container>
<ng-container *ngIf="stbForm.get('firstName').hasError('maxlength')">
Name must have at most {{stbForm.get('firstName').getError('maxlength').requiredLength}} characters
</ng-container>
<ng-container *ngIf="stbForm.get('firstName').hasError('required') ||
stbForm.get('firstName').hasError('pattern')">
This field is required
</ng-container>
</div>
如果我想实现这一点,我需要为这些 if 添加更多条件并使其变得混乱。有没有更好更简单的方法?
我可以制作自定义指令甚至整个组件,但也许还有其他方式。
我可以为每个字段创建一个变量并从 TS 设置其值,但这需要扩展内置验证器
【问题讨论】:
标签: angular validation angular-reactive-forms