angular $q封装$http get和post请求
来源:互联网 发布:python格式化字符串 编辑:程序博客网 时间:2024/05/22 09:51
//第一步,定义发送请求的配置信息
angular.module('hkApp').constant('API_ENDPOINT', {host: 'http://testfx.ypcoo.com',port: 80,path: '/index.php/Wap',platform: 'weixin' // string 'weixin or app' 平台常量,通过此参数判断系统是在微信里面使用还是在APP里面使用,以便调用不同的微信接口});
//第二步,定义一个服务,“专门”用来发送get或者post请求
/** * 定义ApiService服务 * 功能:专门向服务器发送post 和 get请求 * */angular.module('hkApp').factory('ApiService', ["$window", "$http", "WAP_CONFIG", "$q", "$log","$ionicLoading",function($window, $http, WAP_CONFIG, $q, $log,$ionicLoading) {var _api = WAP_CONFIG;var endpoint = _api.host + ':' + _api.port;// public apireturn {//发送服务器的域名+端口,例如http://deve.sqhzg.cn:80endpoint: endpoint,//post请求,第一个参数是URL,第二个参数是向服务器发送的参数(JSON对象),post: function(url, data) {url = endpoint + url;var deferred = $q.defer();var tempPromise;//显示加载进度$ionicLoading.show({template: 'Loading...'});//判断用户是否传递了参数,如果有参数需要传递参数if(data != null && data != undefined && data != ""){tempPromise = $http.post(url,data);}else{tempPromise = $http.post(url);}tempPromise.success(function(data,header,config,status) {deferred.resolve(data);$ionicLoading.hide();}).error(function(msg, code) {deferred.reject(msg);$log.error(msg, code);$ionicLoading.hide();});return deferred.promise;},//get请求,第一个参数是URL,第二个参数是向服务器发送的参数(JSON对象),get: function(url, data) {url = endpoint + url;var deferred = $q.defer();var tempPromise;//显示加载进度$ionicLoading.show({template: 'Loading...'});//判断用户是否传递了参数,如果有参数需要传递参数if(data != null && data != undefined && data != ""){tempPromise = $http.get(url,data);}else{tempPromise = $http.get(url);}tempPromise.success(function(data,header,config,status) {deferred.resolve(data);$ionicLoading.hide();}).error(function(msg, code) {deferred.reject(msg);$ionicLoading.hide();$log.error(msg, code);});return deferred.promise;}};}]);
备注:在请求前添加了$ionicLoading显示,请求返回之后,因此$ionicLoading对象。当遇到服务器压力大的时候,不会出现“白屏” 的情况,提高用户体验
//控制器注入服务,发送请求
.state('index',{url:'/app_index',templateURL: 'ABC.html',onEnter :function(){//因此底部的导航栏$(".index_footer").show();},controller:["$scope","$state",'$ionicActionSheet',"setting_user_levelService","userNameService","ApiService",function($scope,$state,$ionicActionSheet,setting_user_levelService,userNameService,ApiService){//获取用户信息var userInfoPromise = ApiService.post("{:U('UserInfo/getUser')}",{"id": "{$Think.session.ADMINID}"});userInfoPromise.then(function(response){if(response.status == 1){//会员名称$scope.typetext = response.data.typetext;//积分$scope.jifen = response.data.jifen;//红包$scope.redpacket = response.data.redpacket;}});}]})
0 0
- angular $q封装$http get和post请求
- 封装了http Get请求和Post请求
- 简单封装Http的Get和Post请求
- 【No9.】完美封装Http请求 Get、Post
- HttpClient封装POST,GET方式HTTP请求
- Qt--Http请求封装(Get Post)
- Qt--Http请求封装(Get Post)
- Qt--Http请求封装(Get Post)
- HTTP get和post请求
- http post和get请求
- Http协议(get请求和post请求)
- HTTP post请求和get请求
- HTTP的GET请求和POST请求
- HTTP请求的GET和POST请求
- HTTP的GET请求和POST请求
- java封装get和post请求
- Android-封装post和get 网络请求
- AFNetWorking GET 和 POST请求 封装
- JavaScript中的数值范围介绍
- 剑指offer--面试题31:连续子数组的最大和
- 配置Emmet
- angularjs 过滤器filter 学习笔记
- angularjs directive 指令 学习笔记
- angular $q封装$http get和post请求
- angularjs 子模块实战例子 (切换效果)
- powershell中使用vim
- angularjs 拦截器学习笔记
- 深入理解javascript(13):作用域和执行上下文
- angular接受后台HTML (新闻发布系统)
- MongoDB数据库基本用法
- webstorm 压缩js 和 css
- npm package.json配置说明