场景下开发-$http服务封装
$http服务封装
.factory('htp',function(){
// htp.runServiceWithSession()
// htp.runService()
// htp.runService($http, $ionicLoading, "member.register",
// $scope.user, function(data, status){}
// 错误处理 函数
function callErrorFunction(errorFun, data, status,
$ionicLoading,$ionicPopup){
if (errorFun)
errorFun.call(this, data, status);
else {
// alert(msg);
if (typeof (data) == 'string') {
if ($ionicPopup)
$ionicPopup.alert({
template : data,
okText : "确定",
okType : 'button-confirm',
cancelType : 'button-cancel',
cssClass : 'custom_popup'
});
else if ($ionicLoading)
$ionicLoading.show({
template : data,
duration : 2000
});
} else {
if(data.solution!=''&&data.solution!=undefined){
if ($ionicPopup)
$ionicPopup.alert({
template : data.rtnmessage + "," + data.solution,
okText : "确定",
okType : 'button-confirm',
cancelType : 'button-cancel',
cssClass : 'custom_popup'
});
else if ($ionicLoading)
$ionicLoading.show({
template : data.rtnmessage + "," + data.solution,
duration : 2000
});
}else{
if ($ionicPopup)
$ionicPopup.alert({
template : data.rtnmessage,
okText : "确定",
okType : 'button-confirm',
cancelType : 'button-cancel',
cssClass : 'custom_popup'
});
else if ($ionicLoading)
$ionicLoading.show({
template : data.rtnmessage,
duration : 2000
});
}
}
}
}
return{
// init: function(){},
runServiceWithSession: function($http, $ionicLoading, $state,
method, bizObj,successFun, errorFun,timeOut){
runService($http, $ionicLoading, method, bizObj, successFun, function(data,
status) {
if (data.rtncode == 'account.session.timeout'
|| data.rtncode == 'account.session.invalid'
|| (data.rtncode != undefined && data.rtncode
.indexOf('need login') > -1)) {
$state.go('logon', {});
} else {
AmApp.callErrorFunction(errorFun, data, status, $ionicLoading);
}
},timeOut);
},
runService: function($http, $ionicLoading, $ionicPopup,
method, bizObj,successFun, errorFun,timeOut){
console.log(bizObj);
if(typeof ($ionicPopup) == 'string'){
timeOut = errorFun;
errorFun = successFun;
successFun = bizObj;
bizObj = method;
method = $ionicPopup;
$ionicPopup = undefined;
};
var timeOut =(timeOut)?timeOut:1500;
if(navigator && navigator.connection
&& navigator.connection.type == 'none'){
}else{
// $http数据交互
$http({
method : 'POST',
url : url,
data : bizObj,
headers : {
'Content-Type' : 'application/x-www-form-urlencoded;charset=UTF-8'
},
transformRequest : function(obj) {
var str = [];
for ( var p in obj)
str
.push(encodeURIComponent(p)
+ "="
+ encodeURIComponent(encodeURIComponent(obj[p])));
return str.join("&");
},
timeout : timeOut
})
.success(function(data, status, header, config){
if ($ionicLoading) $ionicLoading.hide();
if (status == 200) {
if (typeof (data) == 'string') {
callErrorFunction(errorFun, data, status,
$ionicLoading, $ionicPopup);
} else {
if (data.issuccess == true)
successFun.call(this, data.result, status);
else
callErrorFunction(errorFun, data, status,
$ionicLoading, $ionicPopup);
}
} else {
callErrorFunction(errorFun, "数据获取错误", status,
$ionicLoading, $ionicPopup);
}
})
.error(function(data, status, header, config){
if ($ionicLoading)
$ionicLoading.hide();
if (status == 500)
callErrorFunction(errorFun, "检测到服务状态异常", status,
$ionicLoading, $ionicPopup);
else if (status == 0)
callErrorFunction(errorFun, method + "连接超时",
status, $ionicLoading, $ionicPopup);
else
callErrorFunction(errorFun, "网络连接错误", status,
$ionicLoading, $ionicPopup);
})
}
},
}
})

浙公网安备 33010602011771号