focus-directive.js 868 Bytes
angular.module('focaDirectivas')
    .directive('focaFocus', ['$timeout', '$parse', function($timeout, $parse) {
        var checkDirectivePrerequisites = function (attrs) {
            if (!attrs.focaFocus && attrs.focaFocus != "") {
                throw "focaFocus missing attribute to evaluate";
            }
        }

        return {            
            restrict: "A",
            link: function (scope, element, attrs, ctrls) {
                checkDirectivePrerequisites(attrs);

                scope.$watch(attrs.focaFocus, function (currentValue, lastValue) {
                    if(currentValue == true) {
                        $timeout(function () {                                                
                            element.focus();
                        });
                    }
                });
            }
        };
    }]);