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

Qual a diferença entre 'fotoId' e 'foto_id'?

Boa noite pessoal

No curso, o professor Flávio utiliza

$routeParams.fotoId

e depois utiliza

foto_id

Qual a direfença entre os dois?

A seguir estão os trechos de código para ficar mais claro:

if ($routeParams.fotoId) {
        $http.get('v1/fotos/' + $routeParams.fotoId) <- primeiro elemento da minha pergunta
        .success(function (foto) {
            $scope.foto = foto;
        })
        .error(function(erro) {
            console.log(erro);
            $scope.mensagem = 'Não foi possível obter a foto';
        });
    }

    $scope.submeter = function() {

        if ($scope.formulario.$valid) {
            if($scope.foto._id){
                $http.put('v1/fotos' + $scope.foto_id); <- segundo elemento da minha pergunta
            }else {
                $http.post('/v1/fotos', $scope.foto)
                .success(function() {
                    $scope.foto = {};
                    $scope.mensagem = 'Foto cadastrada com sucesso';
                })
                .error(function(erro) {
                    console.log(erro);
                    $scope.mensagem = 'Não foi possível cadastrar a foto';
                });
            }
        }
    };

Obrigado a quem ajudar!

3 respostas
solução!

Bom dia!

Quando você faz $routeParams.fotoId é porque esta querendo pegar um pedacinho da URL. Você escreve fotoId porque na rota usou :/fotoId. Lembra do cadastro de rotas? Vejamos um trecho:

  // novidade aqui! Nova rota!
        $routeProvider.when('/fotos/edit/:fotoId', {
            templateUrl: 'partials/foto.html',
            controller: 'FotoController'
        });

Se a rota fosse '/fotos/edit/:calopsita, no seu controller você faria $routeParams.calopsita. Tudo bem? É importante haver uma paridade.

Já quando você usa $scope.foto._id, você esta querendo acessar a propriedade _id do objeto foto que veio do backend. Você buscou essa foto com o fotoId que foi passado para a rota e que você acessou através de $routeParams.fotoId.

Veja que são duas coisas distintas: um referência o id da foto passado para a rota e o outro é quando acessarmos a propriedade _id do objeto.

Vale uma sugestão. Olhando seu perfil, você parece ter feito apenas lógica de programação. Este curso requer que o programador saiba um pouco mais de JavaScript, por isso o pré-requisito deste curso:

https://cursos.alura.com.br/course/javascript-programando-na-linguagem-web

Com ele, você conseguirá entender com clareza que foto._id é a propriedade de um objeto entre outras coisas.

Lembre-se que Angular é um framework apenas que ajuda a organizar as coisas, o código que é executado quando você clica em um botão ou faz outra coisa é JavaScript.

Sucesso e bom estudo meu aluno.

Obrigado Flavio!

Já fiz esse curso, mas esqueci muita coisa por não praticar.

Estou refazendo com mais atenção.

Blz meu aluno! Recordar é viver, bora continuar estudando!