Não sei o que fiz de errado, para fixação eu acompanho o curso, paro e repito os passos do professor, porém... Depois da aula de vaidações assincronas minhas validações sumiram da pagina de cadastro do novo usuario. Realmente não sei onde errei... #frustradoestou rs
Aqui meu código do novo-usuario.component.ts;
import { UsuarioExisteService } from './usuario-existe.service';
import { NovoUsuarioService } from './novo-usuario.service';
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { NovoUsuario } from './novo-usuario';
import { minusculoValidator } from './minuscula.validator';
@Component({
selector: 'app-novo-usuario',
templateUrl: './novo-usuario.component.html',
styleUrls: ['./novo-usuario.component.css']
})
export class NovoUsuarioComponent implements OnInit {
novoUsuarioForm!: FormGroup;
router: any;
constructor(
private formBuilder: FormBuilder,
private novoUsuarioService: NovoUsuarioService,
private usuarioExisteService: UsuarioExisteService) { }
ngOnInit(): void {
this.novoUsuarioForm = this.formBuilder.group({
email: ['', Validators.required, Validators.email],
fullName: ['', Validators.required, Validators.minLength(4)],
userName: [
'',
[minusculoValidator],
[this.usuarioExisteService.usuarioJaExiste()]
],
password: [''],
})
}
cadastrar() {
if (this.novoUsuarioForm.valid) {
const novoUsuario = this.novoUsuarioForm.getRawValue() as NovoUsuario;
this.novoUsuarioService.cadastraNovoUsuario(novoUsuario).subscribe(
() => {
this.router.navigate(['']);
},
(error) => {
console.log(error);
}
);
}
}
}
e o componente html;
<h4 class="text-center">Registre-se e mostre seu pet ao mundo!</h4>
<form class="form mt-4" [formGroup]="novoUsuarioForm" (submit)="cadastrar()">
<div class="form-group">
<input placeholder="e-mail" class="form-control" formControlName="email" />
<app-mensagem
*ngIf="
novoUsuarioForm.get('email')?.errors?.required &&
novoUsuarioForm.get('email')?.touched
"
mensagem="E-mail obrigatório"
>
</app-mensagem>
<app-mensagem
*ngIf="
novoUsuarioForm.get('email')?.errors?.email &&
novoUsuarioForm.get('email')?.touched
"
mensagem="E-mail no formato incorreto"
>
</app-mensagem>
</div>
<div class="form-group">
<input
placeholder="Nome Completo"
class="form-control"
formControlName="fullName"
/>
<app-mensagem
*ngIf="
novoUsuarioForm.get('fullName')?.errors &&
novoUsuarioForm.get('fullName')?.touched
"
mensagem="Nome incorreto"
>
</app-mensagem>
</div>
<div class="form-group">
<input
placeholder="Usuário"
class="form-control"
formControlName="userName"
/>
<app-mensagem
*ngIf="
novoUsuarioForm.get('userName')?.errors?.minusculo &&
novoUsuarioForm.get('userName')?.touched
"
mensagem="Usuário deve ser em letra minúscula"
>
</app-mensagem>
<app-mensagem
*ngIf="novoUsuarioForm.get('userName')?.errors?.usuarioExistente"
mensagem="Este usuário já existe"
></app-mensagem>
</div>
<div class="form-group">
<input
type="password"
placeholder="Senha"
class="form-control"
formControlName="password"
/>
<app-mensagem
*ngIf="novoUsuarioForm.errors?.senhaIgualUsuario"
mensagem="Senha deve ser diferente do usuário"
>
</app-mensagem>
</div>
<button class="btn btn-primary btn-block">Cadastro</button>
</form>
<p>Já é um usuário? <a [routerLink]="['']"> Faça Login</a></p>
Ajudem-me please