module.exports = function focusElementDirective($parse, $timeout) { return { restrict: 'A', link: function (scope, element, attrs) { var model = $parse(attrs.focusElement) scope.$watch(model, function (value) { if (value === true) { $timeout(function () { element[0].focus() }) } }) element.bind('blur', function () { if (model && model.assign) { scope.$apply(model.assign(scope, false)) } }) } } }