У меня есть Выполнение некоторой связи $http
с сервером и возвратом строки. Однако я получаю ошибку Cannot read property 'then' of undefined
. Я прочитал here и here с аналогичными проблемами, однако я не смог решить свою проблему.
Это код услуги:
factory("availabilityService", ['$http', function ($http) {
return {
checkAvailability1: function (element, string) {
// ..... some object creation code ......
$http({
method: 'POST',
url: 'server/server.php',
data: AvailableObj,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then(function successCallback(response) {
return response;
}, function errorCallback(response) {
});
}
}
}]);
Внутри controller
:
$scope.checkAvailability = function (element, string) {
availabilityService.checkAvailability1(element, string).then(function (response) { //on this line the error occurs
console.log(response);
});
Можете ли вы объяснить логику этого? Я уже вернул сам объект и ответ HTTP-запроса. – undroid
@undroid Вы возвращаете этот ответ из метода _callback_, а не из функции, которая фактически сделала запрос $ http (checkAvailability1). Этот результат никогда не выходит за рамки проверки доступности1. Операторы return неявно «пузырятся» через стек вызовов. –