Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro nas validações

Até o momento meu código dá erro ao tentar alternar entre as mensagens de erro por exemplo

    <app-mensagem
    *ngIf="novoUsuarioForm.get('userName')?.errors?.usuarioExistente "
    mensagem="Usuário já existe"></app-mensagem>
  </div>

o "usuarioExistente" é sublinhado com linhas vermelhas indicando erro

eu baixei o projeto do professor que está igual, tenho a impressão de envolver a versão do angular cli ele usa a versão 11 segundo o que o terminal me mostrou e eu uso a versão 13, apesar disso, gostaria de fazer o projeto na ultima versão disponível

segue meu projeto no github: https://github.com/GhaSilva/GatitoBook-Angular

1 resposta
solução!

Boa tarde! Vi seu código no Github e no arquivo usuário-existe-service.ts há um pequeno erro de digitação

import { NovoUsuarioService } from './novo-usuario.service';
import { NovoUsuario } from './novo-usuario';
import { Injectable } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { first, map, switchMap } from 'rxjs';

@Injectable({
  providedIn: 'root',
})
export class UsuarioExisteService {
  constructor(private novoUsuarioService: NovoUsuarioService) {}

  usuarioJaExiste() {
    return (control: AbstractControl) => {
      return control.valueChanges.pipe(
        switchMap((nomeUsuario) =>
          this.novoUsuarioService.verificaUsuarioExistente(nomeUsuario)
        ),
        map((usuaarioExiste) =>
          usuaarioExiste ? { usuarioExistente: true } : null
        ),
        first()
      );
    };
  }
}

o correto seria:

import { Injectable } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { NovoUsuarioService } from './novo-usuario.service';
import { first, map, switchMap } from 'rxjs/operators';

@Injectable({
  providedIn: 'root',
})
export class UsuarioExisteService {
  constructor(private novoUsuarioService: NovoUsuarioService) {}

  usuarioJaExite() {
    return (control: AbstractControl) => {
      return control.valueChanges.pipe(
        switchMap((nomeUsuario) =>
          this.novoUsuarioService.verificaUsuarioExistente(nomeUsuario)
        ),
        map((usuarioExiste) =>
          usuarioExiste ? { usuarioExistente: true } : null
        ),
        first()
      );
    };
  }
}

Abraços, beba água, faça carinho em um doguinho e bons estudos!