Angular 10 中未显示验证消息

Posted

技术标签:

【中文标题】Angular 10 中未显示验证消息【英文标题】:Validation message not showing in Angular 10 【发布时间】:2021-05-29 12:51:33 【问题描述】:

我在一个工作正常的 Angular 10 表单上有这个,但我没有任何验证消息,所以我添加了一些验证消息。这是我的 html 文件:

<form (ngSubmit)="onSubmit()" [formGroup]="myForm">
        <div class="form-group">
            <label for="tecnico">Técnico (*)</label>
            <input type="text" class="form-control" id="tecnico" name="tecnico" 
              formControlName="tecnico" 
               [ngClass]=" 'is-invalid': submitted && f.tecnico.errors">

            <div *ngIf="submitted && f.errors" class="invalid-feedback">
                <div *ngIf="f.tecnico.errors.required">
                    El técnico es requerido
                </div>
            </div>
        </div>

我的 ts 文件:

serviciosettings: ServicioSettings = 
    tecnico: null,
    servicioRealizado: null,        
    semanaDelAno: null,
    fechaDeInicio: null,
    horaDeInicio: null,
    fechaDeFinalizacion: null,
    horaDeFinalizacion: null,
    cantidadDeHoras: null,
    tipoDeHora: null
  ;
  
  myForm: FormGroup;    
  submitted = false;

  constructor(private formBuilder: FormBuilder, private dataService: DataService)      

  ngOnInit() 
    this.myForm = this.formBuilder.group(
      tecnico: [this.servicioSettings.tecnico, Validators.required],
      servicioRealizado: [this.servicioSettings.servicioRealizado, Validators.required],
      fechaDeInicio: [this.servicioSettings.fechaDeInicio, Validators.required],
      horaDeInicio: [this.servicioSettings.horaDeInicio, Validators.required],
      fechaDeFinalizacion: [this.servicioSettings.fechaDeFinalizacion, Validators.required],
      horaDeFinalizacion: [this.servicioSettings.horaDeFinalizacion, Validators.required]
    );
  

  get f()  return this.myForm.controls 

  onSubmit() 
    this.submitted = true;

    if (this.myForm.invalid) 
      return      
    
    alert ('Datos guardados')
  

文本框变为红色,但没有出现验证消息...我正在关注教程...是否缺少某些内容?

************************************ 更新 *************** *****************

iniciarFormulario()
  this.myForm = new FormGroup(
    tecnico: new FormControl(this.servicioSettings.tecnico, [Validators.required, Validators.minLength(4), Validators.maxLength(30)])
 
  );


  ngOnInit() 
    this.iniciarFormulario();    
  

HTML

  <div class="form-group">
        <label for="tecnico">Técnico </label>
        <input type="text" class="form-control" id="tecnico" name="tecnico" formControlName="tecnico"
            [ngClass]=" 'is-invalid': f.tecnico.errors" required>
        <ng-container *ngIf="f.tecnico.errors">
            <span *ngIf="f.tecnico.errors.required">
                El nombre del técnico es requerido
            </span>
            <span *ngIf="f.tecnico.errors.minlength">
                El nombre del técnico debe ser mínimo de 4 letras
            </span>
            <span *ngIf="f.tecnico.errors.maxlength">
                El nombre del técnico debe ser máximo de 30 letras
            </span>
        </ng-container>
    </div>

【问题讨论】:

【参考方案1】:

现在可以了,我做了一些更改,都在更新部分

【讨论】:

以上是关于Angular 10 中未显示验证消息的主要内容,如果未能解决你的问题,请参考以下文章

响应中未显示 Spring Boot 验证错误消息

Angular 8 with Ivy 如何验证它的使用

如何根据 Angular 2 中的自定义验证规则显示错误消息?

Angular Material:不显示第二条验证消息

Angular 4 表单验证和错误消息

如何显示“未找到结果”,如果在表中未找到数据-Angular 8