Mam przycisku na mojej stronie z id = „viewQuestions” na stronie:
<body ng-keydown="key($event);">
Mój kod jest sprawdzanie najważniejszych hitów tak:
$scope.key = function ($event) {
$scope.$broadcast('key', $event.keyCode)
}
iw sterowniku:
$scope.$on('key', function (e, key) {
if (key == 13) {
if (ts.test.current && ts.test.userTestId) {
document.getElementById("viewQuestions").click();
}
}
});
Kiedy uruchomić kod i kliknij ENTER następnie uzyskać ten błąd:
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)
Czy ktoś może mi doradzić w tej sprawie. Chcę tylko symulować klikanie przycisku po naciśnięciu klawisza ENTER. Próbowałem rozwiązań z formularzami, ale nie spełniało to moich dość skomplikowanych potrzeb.
Spróbuj Przykład i określenie funkcji na zakresu kątowego as $ zakresu. functionName = function() {} –
mbaljeetsingh
Przepraszam, ale chcę, aby użytkownik mógł zobaczyć, jak przycisk został zmieniony na kliknięty stan iz powrotem. Rozwiązanie Ashada robi to, ale nie działa, gdy kliknięcie przycisku jest inicjowane przez inne zdarzenie, takie jak naciśnięcie klawisza. – Alan2