Angular auto focus

by tridip

HTML

<div ng-app="myApp" ng-controller="MyCtrl">
<input type="text" focus-on="focusMe"/>
</div>

JavaScript

var app = angular.module("myApp", []); 

app.controller('MyCtrl', function($scope, focus) {
    focus('focusMe');
});

app.directive('focusOn', function() {
   return function(scope, elem, attr) {
      scope.$on('focusOn', function(e, name) {
      //alert(name+' '+attr.focusOn);
      //alert(elem);
        if(name === attr.focusOn) {
          elem[0].focus();
        }
      });
   };
});

app.factory('focus', function ($rootScope, $timeout) {
  return function(name) {
  //alert(name);
    $timeout(function (){
      $rootScope.$broadcast('focusOn', name);
    });
  }
});