使用带有 errors.validation 的验证器时出错

问题描述

学习 Angular 11,我正在学习一门课程,但在使用反应式表单时我被困在验证部分。在视频中解释的人使用了这个:

*ngIf="formularioCreado.controls['correo'].errors.required"

*ngIf="formularioCreado.controls['correo'].errors.email"

而且工作正常,但我不知道他使用的是什么 Angular 版本。我写的代码和他一样,但总是一样的错误

<div class="form-group">
  <input class="form-control" type="email" placeholder="Correo" formControlName="correo">

  <div *ngIf="formularioCreado.controls['correo'].invalid && formularioCreado.controls['correo'].dirty">

    <div class="alert alert-danger" role="alert" *ngIf="formularioCreado.controls['correo'].errors.required">
      Campo requerido
    </div>

    <div class="alert alert-danger" role="alert" *ngIf="formularioCreado.controls['correo'].errors.email">
      No es un correo electronico
    </div>

  </div> 
</div>

错误

Object is possibly 'null'.ngtsc(2531)

解决方法

您没有在 required 元素中使用 <input> 属性。您必须将其添加到 <input> 元素,以便 angular 可以检查此验证器。

您的代码

<input class="form-control" type="email" placeholder="Correo" formControlName="correo">

更正

<input class="form-control" type="email" placeholder="Correo" formControlName="correo" required>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...