6
respostas

Não consegui colocar o foco no botão Voltar utilizando Watcher

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.

6 respostas

Aparentemente esta tudo correto sim. Qual navegador você esta usando?

Flávio, eu testei com Chrome, Firefox e IE.

Eu testei aqui com o código do vídeo e funcionou. Você consegue subir seu projeto no github, assim fica mais fácil para dar uma olhada geral.

Boa noite, Flávio.

Disponibilizei o projeto no git, conforme o endereço seguinte: https://github.com/viniciosborba/alura.git.

Testei seu projeto, exatamente como esta. Depois que eu clico em "salvar", o votão "voltar" ganha o foco como esperado.

Como você esta testando?

Flavio, quando eu clico em "salvar" não muda para o botão de "voltar". Utilizando evento deu certo, mas quando utilizo watcher, que é versão que disponibilizei no git, não funcionou.