title: $apply already in progress when sending a click event to a button?
body: <p>I have a button on my page with an id="viewQuestions" on a page:</p>
  
  <pre><code>    &lt;body ng-keydown="key($event);"&gt;
  </code></pre>
  
  <p>My code is checking for key hits like this:</p>
  
  <pre><code>    $scope.key = function ($event) {
          $scope.$broadcast('key', $event.keyCode)
      }
  </code></pre>
  
  <p>and in the controller:</p>
  
  <pre><code> $scope.$on('key', function (e, key) {
          if (key == 13) {
              if (ts.test.current &amp;&amp; ts.test.userTestId) {
                  document.getElementById("viewQuestions").click();
              }               
          }
      });
  </code></pre>
  
  <p>When I run the code and click ENTER then I get this error:</p>
  
  <pre><code> 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.&lt;anonymous&gt; (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)
  </code></pre>
  
  <p>Can anyone give me advice on this. I just want to simulate the clicking of a button when the ENTER key is pressed. I did try solutions with forms but it does not meet my rather complicated needs.</p>