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">