我正在调用服务saveRouteInfo()
,但只会在控制器中调用错误和成功调用成功回调。
服务
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 :(得分: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);
});
},
};
});
答案 1 :(得分:0)
你应该阅读$q angular promises documentation
并返回已解决或被拒绝的承诺,以便您可以在.then()第二个函数中捕获被拒绝的承诺。