controller.js
``` 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" : "MP3 Player" , "preco" : 500}];
$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, CarroService){
$scope.carroFinalizado = angular.fromJson($stateParams.carro);
$scope.pedido = {};
$scope.finalizarPedido = function(){
var pedidoFinalizado = { params : { carro : $scope.carroFinalizado.nome, preco : $scope.carroFinalizado.preco, nome : $scope.pedido.nome, endereco : $scope.pedido.endereco, email : $scope.pedido.email } }
CarroService.salvarPedido(pedidoFinalizado).then(function(dados){
$ionicPopup.alert({ title: 'Parabens', template: 'Você acaba de comprar um carro.' }).then(function(){ $state.go('listagem'); });
}, function(erro){ $ionicPopup.alert({ title: 'Deu erro', template: 'Campos obrigatórios' }); });
}
});
angular.module('starter') .controller('LoginController', function($scope, CarroService, $ionicPopup, $state, $rootScope){
$scope.login = {};
$scope.realizarLogin = function(){
var dadosDoLogin = { params : { email : $scope.login.email, senha : $scope.login.senha } }
CarroService.realizarLogin(dadosDoLogin).then(function(dados){ $rootScope.usuario = dados.usuario;
$state.go('app.listagem');
}, function(erro){ $ionicPopup.alert({ title : 'Opa!', template : 'Email ou senha incorretos.' })
})
}
});
angular.module('starter') .controller('MenuController', function($rootScope, $scope){
$scope.usuarioLogado = $rootScope.usuario;
})
```
routes.js angular.module('starter') .config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise('login');
$stateProvider
.state('app', { url : '/app', templateUrl : 'templates/menu.html', abstract: true, controller: 'MenuController' })
.state('app.listagem',{ url : '/listagem', views : { 'menuContent' : { templateUrl : 'templates/listagem.html', controller: 'ListagemController' } } })
.state('carroescolhido',{ url : '/carroescolhido/:carro', templateUrl: 'templates/carroescolhido.html', controller: 'CarroEscolhidoController' })
.state('finalizarpedido',{ url : '/finalizarpedido/:carro', templateUrl : 'templates/finalizarpedido.html', controller : 'FinalizarPedidoController' })
.state('login', { url : '/login', templateUrl : 'templates/login.html', controller : 'LoginController' })
})
services.js 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;
}); }, salvarPedido : function(pedido){ return $http.get(url + "salvarpedido" , pedido).then(function(response){ return "Deu certo."; }); },
realizarLogin : function(dadosDoLogin){ return $http.get(url + "login", dadosDoLogin).then(function(response){ return response.data; }); } }
}); login.html
Olá, faça seu login
menu.html
Dados Pessoais
{{usuarioLogado.nome}}
{{usuarioLogado.email}}
index.html
Dados Pessoais
{{usuarioLogado.nome}}
{{usuarioLogado.email}}