AngularJS Focus Directive

http://angularjs.org/

by GlobalDomestic

HTML

<div ng-controller="MyCtrl">
    <input type="text" cp-focus />
    <pre>Focused: {{focus}}</pre>
</div>

JavaScript

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

myApp.controller('MyCtrl', ['$scope', function ($scope) {}]);

myApp.directive('cpFocus', ['$parse', function ($parse) {
    return function (scope, element, attr) {
        var fn = $parse(attr.cpFocus || 'focus');
        fn.assign(scope, false);

        element.bind('focus', function () {
            scope.$apply(function () {
                fn.assign(scope, true);
            });
        });

        element.bind('blur', function () {
            scope.$apply(function () {
                fn.assign(scope, false);
            });
        });
    };
}]);