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

Erro no service

fiz o service exatamente como esta na aula mas não funciona.

angular.module('starter')
.service('CarroService', function($http){
    var url = 'https://aluracar.herokuapp.com/';

    return{
        obterCarros : function(){
            return $http.get(url).then(function(response){
                return response.data;
            });
        }
    }
});
6 respostas

Olá Victor, tudo bem?

Me parece que seu código está correto. O erro acontece quando? Poderia me mostrar como está usando esse serviço lá na controller e também mostrar o erro.

Você injetou o serviço no controller que utilizará? (junto da onde colocou $scope). Adicionou o arquivo criado no index.html igual fizemos com o routes.js? Está chamando a função corretamente? nomeDoServiço.nomeDaFunção().then(function (dados) { //codigo });

Segue o controller:

angular.module('starter')
.controller('ListagemController', function($scope, CarroService){


CarroService.obterCarros().then(function(dados){
    $scope.listaDeCarros=dados;
    });
});

angular.module('starter')
.controller('CarroEscolhidoController', function($stateParams, $scope){
    $scope.carroEscolhido = angular.fromJson($stateParams.carro);

    $scope.listaDeAcessorios = [{"nome": "Freio ABS", "preco": 800},
                               {"nome": "Ar Condicionado", "preco": 1000},
                               {"nome": "Som", "preco": 500},
                               {"nome": "Vidro Eletrico", "preco": 1200}]

    $scope.mudou = function (acessorio, isMarcado){
        if(isMarcado) {
            $scope.carroEscolhido.preco=
                        $scope.carroEscolhido.preco + acessorio.preco;
        } else {
            $scope.carroEscolhido.preco=
                        $scope.carroEscolhido.preco - acessorio.preco;
        }
    };
});

angular.module('starter')
.controller('FinalizarPedidoController', function($stateParams, $scope, $ionicPopup, $state){

    $scope.carroFinalizado = angular.fromJson($stateParams.carro);

    $scope.finalizarPedido = function() {
        $ionicPopup.alert({
            title: "Parabens",
            template: "Voce acaba de comprar um carro!"

        }).then (function(){
            $state.go('listagem');
        });
    }


});

Estou chamado o service no index. O problema é que não carrega mais a lista.

<!DOCTYPE html>

Rua Vergueiro, 3185

solução!

Oi Victor.

Faz um teste e faz o debug ali no controller, para ver se a lista de carros está chegando na controller.

CarroService.obterCarros().then(function(dados){
    console.log(dados);
    $scope.listaDeCarros=dados;
}, function(erro){
    console.erro("deu erro: "  + erro);
} );

Assim você pode ver na controller se o service está funcionando.

Ola Obrigado pela ajuda. Consegui resolver o problema.

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