que programacion ejemplos javascript jquery angularjs angularjs-ng-click

javascript - programacion - ng-click function



Cómo activar ngClick mediante programación (7)

Quiero activar ng-click de un elemento en tiempo de ejecución como:

_ele.click();

O

_ele.trigger(''click'', function());

¿Cómo puede hacerse esto?


El uso de un JavaScript simple funcionaba para mí:
document.querySelector(''#elementName'').click();



La siguiente solución funciona para mí:

angular.element(document.querySelector(''#myselector'')).click();

en lugar de :

angular.element(''#myselector'').triggerHandler(''click'');


La sintaxis es la siguiente:

function clickOnUpload() { $timeout(function() { angular.element(''#myselector'').triggerHandler(''click''); }); }; // Using Angular Extend angular.extend($scope, { clickOnUpload: clickOnUpload }); // OR Using scope directly $scope.clickOnUpload = clickOnUpload;

Más información sobre Angular Extender here .

Si está utilizando versiones antiguas de angular , debe usar el disparador en lugar de triggerHandler .

Si necesita aplicar la detención de la propagación, puede usar este método de la siguiente manera:

<a id="myselector" ng-click="clickOnUpload(); $event.stopPropagation();"> Something </a>


Por si acaso todo el mundo lo ve, agregué una respuesta de duplicación adicional con una línea importante que no interrumpirá la propagación del evento.

$scope.clickOnUpload = function ($event) { $event.stopPropagation(); // <-- this is important $timeout(function() { angular.element(domElement).trigger(''click''); }, 0); };


Puedes hacer como

$timeout(function() { angular.element(''#btn2'').triggerHandler(''click''); });


angular.element(domElement).triggerHandler(''click'');

EDITAR: parece que tiene que salir del ciclo $ apply () actual. Una forma de hacerlo es usar $ timeout ():

$timeout(function() { angular.element(domElement).triggerHandler(''click''); }, 0);

Ver violín: jsfiddle.net/t34z7