Estou com a versão 11 do angular, e não recebo a mensagem "Usuário já existe" no navegador, a requisição funciona normalmente, e é retornado um true, selecionando "alvaro", porem a validação não expõe a mensagem, o que poderia ser? segue abaixo código usado
novo-usuario.component.html
...
<div class="form-group">
<input type="text" class="form-control" formControlName="userName" placeholder="Usuário">
<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="Usuário já existe">
</app-mensagem>
</div>
...
novo-usuario.component.ts
...
ngOnInit() {
this.novoUsuarioForm = this.formBuilder.group({
email: ['', [Validators.required, Validators.email]],
fullName: ['', [Validators.required, Validators.minLength(4)]],
userName: ['', [minusculoValidator], [this.usuarioExisteService.usuarioJaExiste()]],
password: ['']
});
}
...
usuario-existe.service.ts
...
usuarioJaExiste() {
return (control: AbstractControl) => {
return control.valueChanges.pipe(
switchMap((nomeUsuario) =>
this.novoUsuarioService.verificaUsuarioExistente(nomeUsuario)
),
map((usuarioExiste) => (usuarioExiste ? { usuarioExistente: true } : null),
first()
)
);
}
}
...
novo-usuario.service.ts
...
verificaUsuarioExistente(nomeUsuario: string) {
return this.httpClient.get(`http://localhost:3000/user/exists/${nomeUsuario}`)
}
...