Ошибка AngularJS.success не является функцией

Я создал factory для обработки функций моего контроллера, но почему-то контроллер возвращает ошибку для одной из функций:

Ошибка: Auth.getUser(...). Успех не является функцией @http://localhost:8080/app/controllers/mainCtrl.js:10:1
...

Я понятия не имею, что здесь происходит, остальные функции работают нормально?

главный контроллер:

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');
            });
    };
});

Ответ 1

См. " Уведомление об отставке" из $http-документации:

$http legacy обещают методы успеха и ошибки были осуждается. Вместо этого используйте стандартный метод.

Подробнее об этих методах можно узнать в документации о $q.

Ответ 2

Вы можете использовать успешный успех:

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

Ответ 3

Вот код

Освобожденный код

$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)  
{  

}); 

Разрешенный код 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.

});

Ответ 4

Хорошо, что .success устарел. Я лично никогда не соглашался с этим, причина, о которой вы спрашиваете?

object.functionCall(parameters).success(functions (response){

if(response!=="failure")
do this-----
});

Я имею в виду, какой успех имеет дело с провалом внутри его блока. Вместо этого используйте , затем, и вся логика начнет иметь смысл.

Ответ 5

angular версия 1.2.x вы можете использовать .success angular версия 1.6.x вы получите ошибку ".success не является функцией"

решение: заменить ".success" на ". then"