angularjs – $http从服务到控制器的POST响应
发布时间:2020-12-17 10:18:08 所属栏目:安全 来源:网络整理
导读:如何在下面的案例中获得Service的响应? 服务: app.factory('ajaxService',function($http) { updateTodoDetail: function(postDetail){ $http({ method: "POST",headers: {'Content-Type': 'application/x-www-form-urlencoded'},url: post_url,data: $.pa
如何在下面的案例中获得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. }) 我更喜欢第一个选项,所以我也可以处理错误等,而不会传递这些功能. (注意:我没有测试上面的代码所以可能需要进行一些修改) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |