Angular: Empty Fiddle

http://angularjs.org/

HTML

<script src="http://code.angularjs.org/angular-1.0.1.js"></script>
<div ng-controller="MyCtrl">
  Hello, {{name}}!
  <div auto-focus>
  
      <input name="test" value="test" id="test"/>
      <input name="test" disabled="true" />
      <textarea name="test" value="test" ></textarea>
      <input name="test" value="test" />
      
   

  </div>
</div>

CSS

#test {visibility: hidden}

JavaScript

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

//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});

function MyCtrl($scope) {
  $scope.name = 'Superhero';
}


myApp.directive('autoFocus', autoFocus);

    autoFocus.$inject = ['$timeout'];

    function autoFocus($timeout) {
        function link($scope, $element, $attrs) {
            var doms = $element[0].querySelectorAll('input:not(:disabled), textarea:not(:disabled)');
            var found = null;
            angular.forEach(doms, function(dom) {
                if (!isHidden(dom) && found === null) found = dom;
            });
            if ($attrs.autoFocus) {
                $scope.$watch($attrs.autoFocus, focus);
            } else {
                focus(true);
            }
            function focus(condition) {
                if (condition) {
                    $timeout(function() {
                        found.focus();
                    }, $scope.$eval($attrs.focusDelay) || 0);
                }
            }
            function isHidden(el) {
              var style = window.getComputedStyle(el);
              if (style.visibility == 'hidden') return true;
              return (el.offsetParent === null)
          	}
        }
        return {
            restrict: 'A',
            link: link
        };
    }