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