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

Passando expressões para diretiva

No código abaixo pelo que ou vi no vídeo o atributo "acao" está passando uma expressão. Entretanto eu não estou conseguindo entender como ele esta fazendo essa troca na diretiva.

Minha dúvida é o que está sendo trocado aqui "button ng-click="acao(foto)" " , quando eu passo minha expressão?

 <meu-botao-perigo nome="Remover"  acao="remover(foto)">
        </meu-botao-perigo>

diretiva "meuBotaoPerio"

.directive('meuBotaoPerigo', function(){

    var ddo = {};
    ddo.restrict = "E";
    ddo.transclude = true;

    ddo.scope = {
        nome: '@',
        acao: '&'
    };

    ddo.template = '<button ng-click="acao(foto)" class="btn btn-danger btn-block">{{nome}}</button>';

    return ddo;
});
3 respostas

Olá! Na diretiva, não é necessário fazer:

ddo.template = '<button ng-click="acao(foto)" class="btn btn-danger btn-block">{{nome}}</button>';

Basta

ddo.template = '<button ng-click="acao()" class="btn btn-danger btn-block">{{nome}}</button>';

Talvez isso o tenha confundido no vídeo. Desculpe qualquer transtorno.

Então o conteúdo ng-click vai ser trocado pela expressão remover(foto) ?Se sim, se eu tiver uma nova expressão que faz outra coisa, eu consigo usar a mesma diretiva?

solução!

Exato meu aluno!