AngularJS: focus

HTML

<script src="http://ci.angularjs.org/job/angular.js-angular-master/ws/build/angular.js"></script>
<html ng-app="my">

    <div ng-controller="Main" ng-init="focusIndex=3">
        Which input should be focused?: 
        <button ng-click="$parent.focusIndex=$index" ng-repeat="i in [0,1,2,3,4]"> {{$index}} </button>
        <hr />
        <ul>
            <li ng-repeat="i in items">
                {{$index}} <input type="text" focus="$index==focusIndex" /> [{{$index==focusIndex}}]
            </li>
        </ul>
    </div>

</html>

JavaScript

function Main($scope) {
  $scope.items = [1,2,3,4,5];
}

angular.module('my', []).directive('focus', function() {
    var timer;
    
    return function(scope, elm, attr) {
        if(scope.$eval(attr.focus)) {
            if (timer) clearTimeout(timer);
            
            timer = setTimeout(function() {
                elm.focus();
                console.log('focus', elm);
            }, 0);
        }
    };
});