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

ngClass

No curso a professora criou um metodo na class do arquivo ts para retornar determinada classe, eu fiz de uma maneira diferente e funcionou.

<button type="submit" [disabled]="formulario.invalid" [ngClass]="formulario.valid ? 'botao' : 'botao__desabilitado'" (click)="adicionarPensamento()"> Salvar

qual seria a melhor maneira ?

1 resposta
solução!

Oi Henrique! Tudo bem?

Que bom que você encontrou uma solução que funcionou para você! No Angular, há várias maneiras de alcançar o mesmo resultado, e a escolha entre elas pode depender de preferências pessoais ou de requisitos específicos do projeto.

No exemplo que você compartilhou, você está usando o ngClass diretamente na template para alternar entre duas classes CSS com base na validade do formulário. Essa abordagem é direta e fácil de entender, especialmente em casos simples como este.

A abordagem sugerida no curso, que envolve a criação de um método na classe do componente para retornar a classe CSS, pode ser útil quando a lógica de seleção de classes é mais complexa ou quando você deseja reutilizar essa lógica em vários lugares. Por exemplo:

habilitarBotao(): string {
  return this.formulario.valid ? 'botao' : 'botao__desabilitado';
}

E no template você usaria:

<button type="submit" [disabled]="formulario.invalid" [ngClass]="habilitarBotao()" (click)="adicionarPensamento()">
  Salvar
</button>

Ambas as abordagens são válidas, e a escolha entre uma ou outra pode depender de quão complexa é a lógica de seleção de classes ou de quão reutilizável você deseja que essa lógica seja. Se a lógica for simples e específica para um único caso, como no seu exemplo, o uso direto do ngClass pode ser perfeitamente adequado.

Espero ter ajudado. Conte com o apoio do fórum :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓