title: Set focus on first invalid input in AngularJs form
body: <p>I've read several articles and StackOverflow questions relating to the setting of focus in AngularJs.</p>
  
  <p>Unfortunately all the examples that I have read assume that there is some attribute that I can add to the element to gain focus, e.g. a <a href="https://stackoverflow.com/questions/14833326/how-to-set-focus-in-angularjs">focusMe directive</a>.</p>
  
  <p>However what if I don't know in advance which input to set focus to? In particular how do I set focus to the first input element in a form that has $invalid set - i.e. an element that fails validation.  There could be several inputs that fail validation, so I cannot use a directive that just tries to call .focus() based on this.  (I am doing this for Accessibility/WCAG reasons, its good practice to do so on submit being clicked to minimize keypresses to find the first field that has failed validation).</p>
  
  <p>The $error object will give all controls that fail validation, but they are grouped by the type of failure not in any order of appearance on the form.</p>
  
  <p>I'm sure I can come up with some kludged way of doing this. A directive on the form, which receives some broadcast when focus needs to be set - that directive can then search for the first $invalid element.  However this seems very complex and I'd like to know whether these is a better more 'angular' way of doing this.</p>