Erro AngularJS .sucesso não é uma function

Eu construí uma fábrica para lidar com as funções do meu controlador, mas de alguma forma o controlador retorna um erro em uma das funções:

Erro: Auth.getUser (…). Success não é uma function @ http: // localhost: 8080 / app / controllers / mainCtrl.js: 10: 1

Eu não tenho idéia do que está acontecendo aqui, o resto das funções parecem estar funcionando bem?

controlador principal:

angular.module('mainCtrl', []) .controller('mainController', function($rootScope, $location, Auth) { var vm = this; vm.loggedIn = Auth.isLoggedIn(); $rootScope.$on('$routeChangeStart', function() { vm.loggedIn = Auth.isLoggedIn(); Auth.getUser() .success(function(data) { vm.user = data; }); }); vm.doLogin = function() { Auth.login(vm.loginData.username, vm.loginData.password) .success(function(data) { $location.path('/users'); }); }; }); 

Veja ‘ Deprecation Notice ‘ da documentação do serviço $ http :

O êxito e o erro dos methods de promise herdados do $ http foram descontinuados. Use o método padrão então .

Você pode aprender mais sobre esses methods na documentação sobre $ q .

Aqui é o código

Código depravado

 $http( { method: 'POST', url: '/Home/CreateCustomer', /*You URL to post*/ data: $scope.cust /*You data object/class to post*/ }).success(function (data, status, headers, config) { }).error(function (data, status, headers, config) { }); 

Código permitido Angular $ http docs

 $http( { method: 'POST', url: '/Home/CreateCustomer', /*You URL to post*/ data: $scope.cust /*You data object/class to post*/ }).then(function successCallback(response) { // this callback will be called asynchronously // when the response is available }, function errorCallback(response) { // called asynchronously if an error occurs // or server returns response with an error status. }); 

Você pode usar, em seguida, instale o sucesso:

 var personController = function ($scope, personService) { $scope.persons = personService.getAll().then(function (data) { $scope.persons = genericSuccess(data); }); var genericSuccess=function(res) { return res.data; } }; 

É uma coisa boa que o sucesso está obsoleto de qualquer maneira. Eu pessoalmente nunca fiz as pazes com isso, por que você pergunta?

 object.functionCall(parameters).success(functions (response){ if(response!=="failure") do this----- }); 

Quero dizer que tipo de sucesso lida com o fracasso dentro de seu bloco. Use então e toda lógica começará a fazer sentido.

versão angular 1.2.x você pode usar .success versão angular 1.6.x você vai ter erro “.sucesso não é uma function”

solução é: replace “.success” por “. then”

promise de sucesso está obsoleta agora. Use então function em vez sucesso