Limitei o campo chamado "marca" em um projeto que estou fazendo para receber no mínimo 3 caracteres, como foi explicado na aula, porém só aparece a mensagem caso não preencha o campo, se colocar 2 caracteres a mensagem de minLength não aparece.
formulario!: FormGroup;
constructor(private service: VeiculoService, private router: Router, private formBuilder: FormBuilder) {}
ngOnInit(): void {
this.formulario = this.formBuilder.group({
marca: ['', Validators.compose([
Validators.required,
Validators.minLength(3),
Validators.pattern(/(.|\s)*\S(.|\s)*/)
])],
modelo: ['', Validators.compose([
Validators.required,
Validators.minLength(3),
Validators.pattern(/(.|\s)*\S(.|\s)*/)
])],
tipo: ['', [Validators.required]],
condicao: ['', [Validators.required]],
cor: ['', Validators.compose([
Validators.required,
Validators.minLength(3),
Validators.pattern(/(.|\s)*\S(.|\s)*/)
])],
ano: [0, [Validators.required]],
preco: [0, [Validators.required]]
})
}
<div class="form-floating col-sm-6 mb-3">
<input class="form-control" type="text" name="marca" placeholder="Marca do veículo" formControlName="marca">
<label for="marca">Marca</label>
<div class="mensagem__erro" *ngIf="formulario.get('marca')?.errors?.['required'] && formulario.get('marca')?.touched">
A marca do veículo é obrigatória!
</div>
<div class="mensagem__erro" *ngIf="formulario.get('marca')?.errors?.['minLength'] && formulario.get('marca')?.touched">
A marca do veículo deve ter no mínimo 3 caracteres!
</div>
</div>