【发布时间】:2018-10-11 18:42:19
【问题描述】:
我在我的 Angular 项目中的很多地方都使用了响应式表单,上周我们决定稍微优化一下我们的代码。在代码审查期间,我发现了一个关于在 HTML 中显示表单验证消息的问题。
所以我使用下面的代码来显示验证错误消息:
<form [formGroup]="form">
<div>
<input formControlName="firstName">
<div *ngIf="form.controls.firstName.errors && (form.controls.firstName.touched || form.controls.firstName.dirty)">
This field is required
</div>
</div>
</form>
看起来不错,但是如果我将form.controls.firstName.errors 替换为!form.controls.firstName.valid 会怎样?见下文:
<form [formGroup]="form">
<div>
<input formControlName="firstName">
<div *ngIf="!form.controls.firstName.valid && (form.controls.firstName.touched || form.controls.firstName.dirty)">
This field is required
</div>
</div>
</form>
我看不出有什么不同,但在我的团队中,一些队友认为我们应该使用!form.controls.firstName.valid,我们就这个小问题进行了长时间的讨论。我仍然没有说服我的队友。对我来说,如果form 有一个error,那么它的状态将是invalid 或form 是invalid,因为它有一个error。
谁能建议我应该遵循哪个选项并且从根本上是正确的。
非常感谢。
【问题讨论】:
标签: angular forms validation