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

repedir a mesma função ng-click

Olá, Estou com dificuldade em desenvolver algumas coisas simples que antes eu fazia com jQuery e agora to tentando usar o AngularJs.

tenho uma determinada lista ordenada em html

<ul> 
    <li  ng-repeat="item in itens" ng-click="funcao()">
        algum nome <span>0</span>
    </li>
<ul>

Como se trata de um ng-repeat terei várias li com a mesma função no ng-click. A minha dúvida é, como posso saber a li exata que foi executada o meu ng-click lá no meu controller?

Antes pelo jQuery eu fazia isso facilmente com a utilização do $(this), e ainda conseguia acessar algum filho (span):

$('li').click(function(){
    console.log($(this).find('span').text());
});

Como seria isso no mundo do Angular? E desculpa se falei alguma besteira! rs Valeeu!!!

2 respostas
solução!

Angular permite fazer o que você esta querendo em diretivas, não no controller. Pela convenção, diretivas é o local no qual você pode manipular DOM.

Mas é possível resolver isso no controller trabalhando apenas com o model. Veja:

<ul> 
    <li  ng-repeat="item in itens" ng-click="funcao(item)">
        algum nome <span>{{item}}</span>
    </li>
<ul>

E lá no seu controller, como você recebeu o item, você imprime com console.log.

$scope.funcao = function(item) {
    console.log(item);
}

Veja que cada item da lista que você clicar, o seu model será passado para a função.

Opa! melhor impossível! rsrs Valeu pela dica, consegui aqui!