我在与验证的角度反应形式(从方案中取得,但根据需要引用它)。控制是invlid当窗体启动,而它仍然是原始的,没有感动,不脏。有为什么会发生\如何避免任何的假设呢?
使用,例如
<div *ngIf="name.invalid && (name.dirty || name.touched)"
class="alert alert-danger">
...
</div>
为什么检查脏和感动?您可能不希望您的应用程序的用户有机会编辑表单前显示的错误。脏和检查触摸防止错误显示,直到用户做两件事情之一:改变值,转动控制脏;或模糊了形式的控制元件,设置控制到触摸。
如在形式所需象下面这标志着所有需要的形式控制
createFormGroup() {
return new FormGroup({
email: new FormControl('', [Validators.required, Validators.email]),
mobile: new FormControl('', [Validators.required]),
country: new FormControl('', [Validators.required])
});
}
所以上述表单控件电子邮件,移动和国家将是无效的,那么该用户将禁用提交按钮或者显示一些信息给用户
所以在这里,你可以显示在用户触动场像下面
<input formControlName="mobile">
<span *ngIf="mobile.invalid && mobile.errors.required">
Mobile is required.
</span>
<span *ngIf="mobile.invalid && mobile.errors.invalidNumber">
Value has to be a number.
</span>
希望这会有所帮助。