Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida aula (8) directivas ( botão com uma ação de function )

Gostaria de tirar uma dúvida... pois se as directivas são para deixar o código não repetitivo e sempre ficar sempre indo mexer em 2 arquivos ( a depender do caso ), minha dúvida agora veio referente a aula(8) aos 16:00minutos que...

minha directiva ( principa.html )

minha directiva ( minhas-directivas.js )

diretivas.directive('botaoPerigo', function(){ var ddo = {}; ddo.restric = 'E'; ddo.scope = { acao: '&', // usar & nome: '@' }; ddo.template = '{{nome}}'; return ddo; });

dúvida vem agora...

  • porque eu não poderia apenas chamar o {{acao}} dentro desse ng-click, e ele poder pegar toda a função que é... remover(foto) ? - pois assim eu poderia usar o botão para ter outras utilidades e eu poderia na minha directiva no .html colocar outras funções e o acao iria pegar o que eu coloquei ali.

  • porque dessa forma que foi feita, eu acabo tento que colocar acao(foto) e, se eu tiver outros parâmetros como... remover(foto,$index) ou outros, eu terei que ir na directivaJS e colocar lá acao(foto,$index) para ele receber os parâmetros.

Entende minha dúvida de deixar essa directiva receber uma ação genérica? - pois assim posso pagar qualquer função para ele.

Existe alguma forma disso ser feito pessoal/professor?

Obrigado!

4 respostas

Nelson, estou com dificuldades de ler seu código, pois ele foi postado sem usar formatação de código. Dê uma olhada no botão formatação. Quando for postar o código formatado, coloque cada parte em separado.

Você pode me ajudar com isso? Daí fica muito mais fácil para eu te ajudar.

Pelo seu texto, a diretiva já é genérica. O Atributo acao recebe qualquer função. Veja que a diretiva não guarda a lógica da ação, quem define é o controller. É por isso que usamos o modificador &. Nele, a diretiva consegue chamar uma função de um controller. Eu não posso simplesmente colocar o código da ação diretamente na diretiva. Como a diretiva saberá o que deve fazer? Você mesmo disse que a acao pode receber várias parâmetros de acordo com a situação. Sendo assim, como sua diretiva pode prever todos esses parâmetros? E mesmo que você criasse um código genérico na diretiva, em qual controller, isto é, no contexto de qual controller ela seria executada?

Talvez eu não tenha entendido corretamente sua dúvida, por isso confirme para mim se era isso mesmo que você gostaria de saber. Pelo o que entendi, o código do jeito que foi ensinado faz exatamente o que você está querendo.

Aguardo seu feedback.

Ah entendi agora, era essa dúvida que eu tinha, também vi alguns exemplos online e realmente funciona da mesma forma que ensinou, mas consegui agora entender e ter idéia da forma para utilização do mesmo. Obrigado.

Outra coisa, vocês poderiam fazer "o adicionar código" no texto talvez seguido por alguma tag mais simples e fácil de entender,

como [codigo] meu codigo aqui [codigo] , mas já entendi agora, não havia visto a formação ali. Obrigado!

solução!

Oi Nelson, bom saber que sua dúvida foi esclarecida.

Vou levar também sua sugestão do código para a equipe, pode deixar.