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

[Dúvida] Larga escala da diretiva

Pessoal, utilizar a diretiva para esconder o botão me parece muito trabalhoso caso fosse necessário aplicar em diversos botões ou inputs da aplicação. Ou caso um dev novo entrar no projeto, como ele saberia sobre essa diretiva?

Existe alguma outra maneira de escalar esse bloqueio no botão?

1 resposta
solução!

Olá Luiz, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

A diretiva criada na aula, photo-owner-only.directive.ts pode ser reaproveitada em outras tags HTML, como botões e inputs da aplicação, sem que seja necessário realizar a construção de uma lógica para cada tag. Na aula, o professor adicionou na tag i como apresentada abaixo:

<i photoOwnerOnly [ownedPhoto]="photo" (click)="remove()" class="fa fa-trash-o fa-2x pull-right"></i>

Mas, caso queira fazer o uso por exemplo em uma tag button, basta adicionar a diretiva a esta tag, sem que seja necessário realizar a implementação novamente da lógica da diretiva:

<button  photoOwnerOnly [ownedPhoto]="photo" (click)="remove()" ></button>

Todavia, uma alternativa para escalar esse bloqueio no botão é utilizar uma uma propriedade booleana no componente para controlar o estado de bloqueio do botão. Por exemplo, você pode ter uma propriedade chamada bloquearBotao e atribuí-la como true quando desejar bloquear o botão. Em seguida, no HTML, você pode usar a diretiva disabled para desabilitar o botão com base no valor dessa propriedade, como mostro abaixo:

<button [disabled]="bloquearBotao">Clique aqui</button>

Assim, você pode manipular facilmente o estado de bloqueio do botão diretamente no componente.

Outra forma, porém mais complexa, é criar um serviço para gerenciar o estado de bloqueio dos botões em toda a aplicação. Esse serviço pode ter métodos para definir o estado de bloqueio de um botão específico ou de vários botões. Dessa forma, o desenvolvedor pode usar os métodos fornecidos pelo serviço para bloquear ou desbloquear os botões conforme necessário. O serviço pode ser injetado nos componentes relevantes e os botões podem ser desabilitados com base no estado mantido pelo serviço.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!