Boa noite:
Não consegui colocar o foco no botão de voltar utilizando watcher. Utilizando evento deu certo.
Segue abaixo o código:
// minnhas-diretivas.js
.directive('meuFocus', function() {
var ddo = {};
ddo.restrict = 'A';
ddo.scope = {
focado : '='
};
// somente na fase de link podemos colocar observadores
ddo.link = function(scope, element) {
scope.$watch('focado', function() {
if (scope.focado) {
element[0].focus();
scope.focado = false;
}
});
}
return ddo;
})
// foto.html
// O botão voltar foi decorado com meu-focus e focado="focado"
<a href="/" class="btn btn-primary" meu-focus focado="focado">Voltar</a>
// foto-controller.js
$scope.submeter = function() {
if ($scope.formulario.$valid) {
cadastroDeFotos.cadastrar($scope.foto)
.then(function(dados) {
$scope.mensagem = dados.mensagem;
if (dados.inclusao) {
$scope.foto = {};
$scope.focado = true;
}
})
.catch(function(dados) {
$scope.mensagem = dados.mensagem;
});
}
};
Aparentemente está conforme o exemplo da aula.