Je veux déclencher ng-click
un élément au moment de l'exécution comme:
_ele.click();
OU
_ele.trigger('click', function());
Comment cela peut-il être fait?
javascript
jquery
angularjs
angularjs-ng-click
mulla.azzi
la source
la source
Réponses:
La syntaxe est la suivante:
Plus d'informations sur la manière Angular Extend ici .
Si vous utilisez d' anciennes versions d'angular , vous devez utiliser trigger au lieu de triggerHandler .
Si vous devez appliquer l'arrêt de la propagation, vous pouvez utiliser cette méthode comme suit:
la source
triggerHandler
place detrigger
EDIT: Il semble que vous deviez sortir du cycle $ apply () actuel. Une façon de faire est d'utiliser $ timeout ():
Voir violon: http://jsfiddle.net/t34z7/
la source
$timeout
plutôt quesetTimeout
, car$timeout
cela exécutera un$apply
cycle pour vous si nécessaire. Cela rend également votre code plus testable car ngMock vous donne un contrôle total sur l'$timeout
exécution des s. docs.angularjs.org/api/ng/service/$timeout$timeout(fn, 0, false);
pour qu'il n'invoque pas $ apply, n'est-ce pas?$timeout
est un service et, en tant que tel, doit être injecté de dépendances avant de pouvoir l'utiliser docs.angularjs.org/api/ng/service/$timeoutCette solution suivante fonctionne pour moi:
au lieu de :
la source
$('#element').click()
Juste au cas où tout le monde le verrait, j'ai ajouté une réponse de duplication supplémentaire avec une ligne importante qui ne rompra pas la propagation des événements
la source
L'utilisation de l'ancien JavaScript a fonctionné pour moi:
document.querySelector('#elementName').click();
la source
La meilleure solution est d'utiliser:
Parce que les événements de clic triggerHandler (
angular.element(domElement).triggerHandler('click')
) angularjs ne bouillonnent pas dans la hiérarchie DOM, mais celui ci-dessus le fait - tout comme un clic de souris normal.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
la source
Tu peux faire comme
la source
Échantillon simple:
HTML
JavaScript
Ce que cela fait, c'est rechercher le bouton
id
et d'effectuer une action de clic. Voila.Source: https://techiedan.com/angularjs-how-to-trigger-click/
la source
Ce code ne fonctionnera pas (génère une erreur lorsque vous cliquez dessus):
Vous devez utiliser le querySelector comme suit:
la source
Incluez la ligne suivante dans votre méthode là où vous souhaitez déclencher l'événement de clic
la source