Ich habe eine Taste auf meiner Seite mit einem id = "viewQuestions" auf einer Seite:
<body ng-keydown="key($event);">
Mein Code ist für die wichtigsten Hits wie diese Überprüfung:
$scope.key = function ($event) {
$scope.$broadcast('key', $event.keyCode)
}
und in der Steuerung:
$scope.$on('key', function (e, key) {
if (key == 13) {
if (ts.test.current && ts.test.userTestId) {
document.getElementById("viewQuestions").click();
}
}
});
Wenn ich führen Sie den Code ein und klicken Sie ENTER dann bekomme ich diese Fehlermeldung:
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)
Kann mir jemand dazu einen Rat geben. Ich möchte nur das Klicken einer Schaltfläche simulieren, wenn die EINGABETASTE gedrückt wird. Ich habe Lösungen mit Formularen versucht, aber es entspricht nicht meinen ziemlich komplizierten Bedürfnissen.
Try this, und diese Funktion auf dem Winkelumfang wie $ Umfang definieren. functionName = function() {} – mbaljeetsingh
Tut mir leid, aber was ich tun möchte, ist, dass der Benutzer sehen kann, dass die Schaltfläche in den angeklickten Zustand und zurück geändert wurde. Ashads Lösung tut dies, aber es funktioniert nicht, wenn der Klick auf die Schaltfläche von einem anderen Ereignis wie einem Tastendruck ausgelöst wird. – Alan2