Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Qual o lugar certo para adicionar o $scope.formulario.$setPristine(); ?

Esta certo onde eu coloquei $scope.formulario.$setPristine(); ? Ou não seria nessa parte e o correto seria na foto.html ?

grupos-controller.js

angular.module('alurapic')
    .controller('GruposController', function($scope, $http) {

        $scope.formulario.$setPristine();
        $http.get('/v1/grupos')
        .success(function(grupos) {
            $scope.grupos = grupos;
        })
        .error(function(erro) {
            console.log(erro);
        });
    });
5 respostas

Opa Felipe, eu não sou um super especialista em angular e talvez vc até já tenha resolvido. Pelo que entendi, esse método vai tirar lixo relacionado ao seu formulário.. então parece que um bom ponto de chamada é depois de ter usado ele.

Entao Alberto a minha duvida é saber se fico no lugar certo rsrs. Eu coloquei no lugar onde eu achei que seria certo, mas nao sei se fico certo e fiquei na duvida de como testar se fico certo ou nao. Voce saberia me dizer se fico certo? E como posso testar ?

solução!

Bom, se esse seu código está relacionado ao submit do form, acho que está no lugar certo.

Pessoal, não entendi essa. O comentário do instrutor informa o seguinte:

Veja que ao limparmos o formulário, automaticamente nossa validação é disparada. Contudo, se você quiser que isso não acontece, logo depois de limpar o formulário faça:

$scope.formulario.$setPristine();

Em qual arquivo deve ser feito?

Elton,

Há dois pontos de interesse para simular a não-interação do usuário com o formulário no seu foto-controller, como pode ser visto abaixo:

if ($scope.formulario.$valid) {
            if ($scope.foto._id) {
                $http.put('v1/fotos/' + $scope.foto._id, $scope.foto)
                    .success(function () {
                        $scope.foto = {};
                        $scope.formulario.$setPristine();
                        $scope.mensagem = "Foto alterada com sucesso";
                    }).error(function (error) {
                        $scope.mensagem = "Não foi possível alterar a foto";
                    });
            } else {
                $http.post('v1/fotos', $scope.foto)
                    .success(function () {
                        $scope.foto = {};
                        $scope.formulario.$setPristine();
                        $scope.mensagem = "Foto cadastrada com sucesso";
                    }).error(function (error) {
                        $scope.mensagem = "Não foi possível cadastrar a foto";
                    });
            }
        }

Isso irá remover aquelas mensagens de erro que informam o preenchimento obrigatório após você já ter submetido uma nova foto ou alteração.

O importante é saber o que está fazendo, qualquer coisa me chame que vejo se posso ajudar!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software