saber presionado llamar funcion fue evento ejemplos ejemplo ejecutar desde botones boton automaticamente javascript angularjs events angular-digest

javascript - presionado - onclick html5



$ aplicar ya en curso al enviar un evento de clic a un botón? (1)

Su evento de clic ejecuta un ciclo de resumen que está en conflicto con el ciclo de resumen actual, $timeout lo ayudaría en esta situación. Ajustar evento de clic dentro $timeout función $timeout .

Margen

<body ng-app="myApp" ng-controller="testCtrl" ng-keydown="key($event);"> <button id="viewQuestions" type="button" ng-click="isButtonClicked = !isButtonClicked; test();"> Test</button> Is Button Clicked {{isButtonClicked}} </body>

Código

$scope.$on(''key'', function (e, key) { if (key == 13) { if (ts.test.current && ts.test.userTestId) { $timeout(function(){ angular.element(document.getElementById("viewQuestions")).trigger(''click''); }) } } });

Cualquier cosa que escriba dentro de ng-click se llamará.

Fiddle de trabajo

Tengo un botón en mi página con un id = "viewQuestions" en una página:

<body ng-keydown="key($event);">

Mi código está buscando hits clave como este:

$scope.key = function ($event) { $scope.$broadcast(''key'', $event.keyCode) }

y en el controlador:

$scope.$on(''key'', function (e, key) { if (key == 13) { if (ts.test.current && ts.test.userTestId) { document.getElementById("viewQuestions").click(); } } });

Cuando ejecuto el código y hago clic en ENTER, obtengo este error:

Error: [$rootScope:inprog] $apply already in progress http://errors.angularjs.org/1.3.7/$rootScope/inprog?p0=%24apply at REGEX_STRING_REGEXP (http://localhost:2757/lib/angular/angular.js:63:12) at beginPhase (http://localhost:2757/lib/angular/angular.js:14735:15) at Scope.$get.Scope.$apply (http://localhost:2757/lib/angular/angular.js:14479:11) at HTMLButtonElement.<anonymous> (http://localhost:2757/lib/angular/angular.js:22945:23) at HTMLButtonElement.eventHandler (http://localhost:2757/lib/angular/angular.js:3009:21) at http://localhost:2757/app/tests/controllers/TestsController.js:24:62 at Scope.$get.Scope.$broadcast (http://localhost:2757/lib/angular/angular.js:14700:28) at Scope.AppController.$scope.key (http://localhost:2757/app/appController.js:30:20) at $parseFunctionCall (http://localhost:2757/lib/angular/angular.js:12330:18) at ngEventDirectives.(anonymous function).compile.element.on.callback (http://localhost:2757/lib/angular/angular.js:22940:17)

¿Alguien puede darme consejos sobre esto? Solo quiero simular el clic de un botón cuando se presiona la tecla ENTER. Intenté soluciones con formularios, pero no satisface mis necesidades más bien complicadas.