Ответ 1
См. " Уведомление об отставке" из $http-документации:
$http legacy обещают методы успеха и ошибки были осуждается. Вместо этого используйте стандартный метод.
Подробнее об этих методах можно узнать в документации о $q.
Я создал 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');
});
};
});
См. " Уведомление об отставке" из $http-документации:
$http legacy обещают методы успеха и ошибки были осуждается. Вместо этого используйте стандартный метод.
Подробнее об этих методах можно узнать в документации о $q.
Вы можете использовать успешный успех:
var personController = function ($scope, personService) {
$scope.persons = personService.getAll().then(function (data) {
$scope.persons = genericSuccess(data);
});
var genericSuccess=function(res) {
return res.data;
}
};
Вот код
Освобожденный код
$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.
});
Хорошо, что .success устарел. Я лично никогда не соглашался с этим, причина, о которой вы спрашиваете?
object.functionCall(parameters).success(functions (response){
if(response!=="failure")
do this-----
});
Я имею в виду, какой успех имеет дело с провалом внутри его блока. Вместо этого используйте , затем, и вся логика начнет иметь смысл.
angular версия 1.2.x вы можете использовать .success angular версия 1.6.x вы получите ошибку ".success не является функцией"
решение: заменить ".success" на ". then"