【问题标题】:How does Angular's validation for an invalid form field work?Angular 对无效表单字段的验证如何工作?
【发布时间】:2018-03-12 14:12:16
【问题描述】:

Angular 中的表单域无效的条件是什么?我可以通过指定自定义规则集来定义它还是由 Angular 在内部完成?它是否根据表单字段的类型而有所不同?另外,AngularJS 和 Angular 中的invalid 表单验证有什么区别吗?

【问题讨论】:

  • 工作角度 2 或更多???
  • 是的!准确地说是 Angular 4。
  • 不,就属性而言,没有添加任何特定类型,例如 required、dirty、pristine、touched 等。在 angular 和 angularjs 版本中几乎都很常见
  • 但在创建表单方面,它们是快速变化,您可以在 Angular 文档中检查表单类型,例如模板驱动(传统的 angularjs 实践)、反应式和动态表单

标签: angular validation


【解决方案1】:

在 Angular 中,您可以使用可用的内部验证来验证您的字段,您还可以创建自己的验证,即自定义验证并使用它。

为此,您可以遵循本指南:Form Validation

角度验证有两种方法

  1. 模板库
  2. 反应形式

在这两种情况下,您都可以使用已经给出的验证并定义自定义验证。如果您有更多字段,我更喜欢 Reactive 表单,因为它易于维护。

从文档中,如果您想检查字段上的特定错误,那么您需要检查字段上的errors 数组

例如,如果你这样做了

  this.heroForm = new FormGroup({
    'name': new FormControl(this.hero.name, [
      Validators.required,
      Validators.minLength(4),
    ]),

然后您可以通过执行此操作来检查特定错误,即检查字段上的errors

  <div *ngIf="name.errors.required">
    Name is required.
  </div>
  <div *ngIf="name.errors.minlength">
    Name must be at least 4 characters long.
  </div>

【讨论】:

  • 谢谢!我已经阅读了官方文档,但我只是想更清楚地了解表单字段,比如电子邮件类型的输入如何变得无效?是 Angular 内部提供的传统电子邮件验证和空/空检查吗?
  • @Pragun - 如果您定义了字段调用名称,那么您将得到 this , name.invalid && (name.dirty || name.touched) for field ,对于详细错误,您可以检查此名称.errors.required 或 name.errors.minlength" ,我的意思是对于特定错误,您必须检查错误数组
猜你喜欢
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2020-04-24
  • 2017-07-19
  • 2020-11-03
  • 2017-08-15
  • 1970-01-01
相关资源
最近更新 更多