如何在下面的案例中获得Service的响应?
服务:
app.factory('ajaxService',function($http) { updateTodoDetail: function(postDetail){ $http({ method: "POST",headers: {'Content-Type': 'application/x-www-form-urlencoded'},url: post_url,data: $.param({detail: postDetail}) }) .success(function(response){ //return response; }); } })
控制器:
updated_details = 'xyz'; ajaxService.updateTodoDetail(updated_details);
在上面这种情况下,我通过控制器POST数据,它工作正常,但现在我希望响应进入我的控制器.
如何实现?
$http返回
promise:
回报承诺
updateTodoDetail: function(postDetail){ return $http({ method: "POST",data: $.param({detail: postDetail}) });
所以你可以做到
ajaxService.updateTodoDetail(updated_details).success(function(result) { $scope.result = result //or whatever else. }
或者,您可以将successfunction传递给updateTodoDetail:
updateTodoDetail: function(postDetail,callback){ $http({ method: "POST",data: $.param({detail: postDetail}) }) .success(callback);
所以你的控制器有
ajaxService.updateTodoDetail(updated_details,function(result) { $scope.result = result //or whatever else. })