Quero acionar ng-click
um elemento em tempo de execução como:
_ele.click();
OU
_ele.trigger('click', function());
Como isso pode ser feito?
javascript
jquery
angularjs
angularjs-ng-click
mulla.azzi
fonte
fonte
Respostas:
A sintaxe é a seguinte:
Mais informações sobre a forma de extensão angular aqui .
Se você estiver usando versões antigas do angular , deve usar trigger em vez de triggerHandler .
Se precisar aplicar a propagação de parada, você pode usar este método da seguinte maneira:
fonte
triggerHandler
vez detrigger
EDIT: Parece que você tem que sair do ciclo atual de $ apply (). Uma maneira de fazer isso é usando $ timeout ():
Veja violino: http://jsfiddle.net/t34z7/
fonte
$timeout
vez desetTimeout
, pois$timeout
ele executará um$apply
ciclo para você, se necessário. Ele também torna seu código mais testável, pois o ngMock oferece controle total sobre quando os$timeout
s são executados. docs.angularjs.org/api/ng/service/$timeout$timeout(fn, 0, false);
para que não invoque $ apply, não é?$timeout
é um serviço e, como tal, precisa ser injetado na dependência antes de poder usá-lo docs.angularjs.org/api/ng/service/$timeoutEsta solução a seguir funciona para mim:
ao invés de :
fonte
$('#element').click()
Para o caso de todos verem, adicionei uma resposta duplicada adicional com uma linha importante que não interromperá a propagação do evento
fonte
Usar o JavaScript simples funcionou para mim:
document.querySelector('#elementName').click();
fonte
A melhor solução é usar:
Porque os
angular.element(domElement).triggerHandler('click')
eventos de clique angularjs triggerHandler ( ) não aparecem na hierarquia DOM, mas o acima sim - como um clique normal do mouse.https://docs.angularjs.org/api/ng/function/angular.element
http://api.jquery.com/triggerhandler/
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
fonte
Você pode fazer como
fonte
Amostra simples:
HTML
JavaScript
O que isso faz é procurar o botão
id
e executar uma ação de clique. Voila.Fonte: https://techiedan.com/angularjs-how-to-trigger-click/
fonte
Este código não funcionará (emite um erro quando clicado):
Você precisa usar o querySelector da seguinte maneira:
fonte
Inclua a seguinte linha em seu método onde você deseja acionar o evento de clique
fonte