0
私はangular
factory
をして、サーバに何か$http
通信を行い、文字列を返す。しかし、私はCannot read property 'then' of undefined
エラーが発生します。私はhereとhereを読みましたが、私の問題を解決することはできませんでした。
これは、サービスコードです:controller
インサイド
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) {
});
}
}
}]);
:
$scope.checkAvailability = function (element, string) {
availabilityService.checkAvailability1(element, string).then(function (response) { //on this line the error occurs
console.log(response);
});
これの背後にある論理を説明できますか?私はすでにオブジェクト自体とhttp要求の応答を返しました。 – undroid
@undroid実際に$ http要求(checkAvailability1)を行った関数からではなく、その応答を_callbackメソッド_から返します。その結果は、checkAvailability1の範囲外には決して行きません。 return文は暗黙的にコールスタックを介して "バブルアップ"しません。 –