AngularJS: foco automático no campo de entrada quando o evento ng-show é acionado

Eu me deparei com o problema de definir o foco no campo de entrada quando o campo foi mostrado condicionalmente pela diretiva ng-show do AngularJS. Eu vim com a seguinte diretiva personalizada para resolver o problema:

app.directive('showFocus', function($timeout) {
return function(scope, element, attrs) {
scope
.$watch(attrs.showFocus,
function (newValue) {
$timeout
(function() {
newValue
&& element.focus();
});
},true);
};
});

Uso:

<input type="text" ng-show="customcondition" show-focus="customcondition">