2017-07-05 12 views
0

私はサービスsaveRouteInfo()を呼び出していますが、コントローラのエラーと成功の両方で成功コールバックのみが呼び出されます。あなたは$q angular promises documentation角度サービスがエラー応答を返さない

を読み、解決またはpを拒否のいずれかを返す必要があり

サービス

gisApp.factory('rpServc', function($http) { 
     return { 
      saveRouteInfo:function(routeInfo){ 
       return $http.post("/GISWebApp/gis/api/v1/route",routeInfo).then(
        function(response) 
        { 
         return response.data;   
        }, function(response) { 
         return response.data; 
        }); 
      }, 
     }; 
}); 

コントローラ

rpServc.saveRouteInfo(routeInfo).then(function(data) { 
    alert(JSON.stringify(data)); 

}, function(error) { 
    alert(JSON.stringify(error)); 
}); 
+0

https://jsfiddle.net/0trpgxm8/1/ –

答えて

0

使用$ qを

gisApp.factory('rpServc', function($http, $q) { 
     var deferred = $q.defer(); 
     return { 
      saveRouteInfo:function(routeInfo){ 
       return $http.post("/GISWebApp/gis/api/v1/route", routeInfo). 
       then(function(response) { 
        return response;   
       }, function(reason) { 
        return $q.reject(reason); 
       }); 
      }, 
     }; 
    }); 
+0

angularjsでv1.5以降の成功は推奨されていません。それを使用しないでください。 – digit

+0

成功を削除して回答を更新しました – Veera

0

あなたが.then()の2番目の関数で拒否されたものを捕まえることができるようにロマイズしてください。

関連する問題