Flávio/Prezados,
Bom dia! Meu post na verdade é mais uma dúvida do que um erro (fiz os exercícios e todos funcionaram OK!). Minha dúvida é em relação a diretiva "meuBotaoPerigo".
Fiz a criação da diretiva no arquivo "minhas-diretivas.js" conforme abaixo:
.directive('meuBotaoPerigo', function() {
var ddo = {};
ddo.restrict = "E";
ddo.scope = {
nome: '@',
acao: '&'
};
ddo.template = '<button class="btn btn-danger btn-block" ng-click="acao(foto)">{{nome}}</button>'
return ddo;
});
E depois substitui o botão, na página "principal.html", pela diretiva criada acima:
<!--<button class="btn btn-danger btn-block" ng-click="remover(foto)">Remover</button>-->
<meu-botao-perigo nome="Remover" acao="remover(foto)"></meu-botao-perigo>
Meu ponto é o seguinte:
Quando referenciamos "incluímos" o "" na "principal.html", duas informações são passadas/alimentadas: 1) nome="Remover" (onde é passada a string "Remover") 2) acao="remover(foto)" (onde é passada a função "remover", contida no controller, juntamente com o objeto da foto (foto que quero remover)).
No meu ddo.template, estou referenciando o seguinte no atributo ng-click: "acao(foto)" (ou seja, estou passando o objeto foto aqui dentro "também"):
ddo.template = '<button class="btn btn-danger btn-block" ng-click="acao(foto)">{{nome}}</button>'
No caso, o objeto "foto" deve ser passado tanto na declaração do "meu-botao-perigo", na página html quanto no template da diretiva, correto? Meu ponto é que, diante dos pontos acima (e se eu não estiver enganado ou falando alguma besteira!) o "reaproveitamento" da diretiva, neste caso, fica restrita apenas a ações de remoção que envolvam o objeto foto? Outro ponto, se tivéssemos uma outra função que tivesse que receber dois objetos, não poderíamos reaproveitar o botão, correto?
Não sei se fui claro mas, em resumo, minha questão é em relação à dependência (explicita) do objeto foto, tanto no html (quando utilizamos a diretiva) quanto no código da diretiva.
Obrigado pela ajuda!