Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 所需的反应式表单控件在原始状态下无效_Angular_Angular Validation - Fatal编程技术网

Angular 所需的反应式表单控件在原始状态下无效

Angular 所需的反应式表单控件在原始状态下无效,angular,angular-validation,Angular,Angular Validation,我有一个带有验证器的角度反应式表单(取自方案,但根据需要参考)。当窗体启动时,当它仍然是原始的、未被触摸的和未脏的时,控件被激活。 有没有假设它为什么会发生\如何避免它?使用,例如 <div *ngIf="name.invalid && (name.dirty || name.touched)" class="alert alert-danger"> ... </div> ... 从 为什么检查脏的和触摸的? 在用户有机会编辑表单之前,您可能

我有一个带有验证器的角度反应式表单(取自方案,但根据需要参考)。当窗体启动时,当它仍然是原始的未被触摸的未脏的时,控件被激活。 有没有假设它为什么会发生\如何避免它?

使用,例如

<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>

手机是必需的。
值必须是一个数字。

希望这会有所帮助。

请添加一些代码以了解您的问题。下面是代码:const ctrl=this.formBuilder.control(“”,Validators.required);console.log(ctrl.invalid);console.log(ctrl.pristine);=>千真万确