Olá,
Fiquei em dúvida sobre a possibilidade de tornar o código mais genérico quando uso uma passagem por referência no escopo de diretivas (&). Vou utilizar um exemplo para tentar explicar melhor o ponto que fiquei confuso.
No exemplo da aula, criamos uma diretiva "meu-botao-perigo". Eu entendi que a criação dessa diretiva seria para tornar esse tipo de botão genérico. Por exemplo, eu poderia utilizar o "meu-botao-perigo" para remover uma foto ou para remover um grupo (considerando que a aplicação de exemplo tivesse um CRUD para grupos). Exemplos:
<!-- Botão para remover foto -->
<meu-botao-perigo acao="remover(foto)" nome="Remover"></meu-botao-perigo>
<!-- Botão para remover grupo -->
<meu-botao-perigo acao="remover(grupo)" nome="Remover"></meu-botao-perigo>
O exemplo acima supõem que existe uma função remover(grupo) dentro do escopo do controller de grupos.
Considerando esses casos, a definição da diretiva propriamente dita, ficou confusa para mim, pois ela está usando o parâmetro fixo "foto", ou seja, isso me parece que tirou a possibilidade de tornar essa diretiva genérica. Abaixo está a linha do exemplo da aula:
ddo.scope = {
nome: '@',
acao: '&'
};
ddo.template = '<button ng-click="acao(foto)" class="btn btn-danger btn-block">{{nome}}</button>';
`
O ng-click="acao(foto)"
está sempre mandando foto. E se eu quisesse utilizar para um grupo? Teria alguma forma de tornar esse parâmetro também genérico?
Espero que tenha conseguido expressar minha dúvida com clareza.
Muito obrigado!