angular 图片缓存服务2.0
改变:合二为一
function(data,status){ imageCache2.getPic(data.imageid, AmApp.config.Merchant).then(function(result){ $scope.merchantDt.imageid = result; }) imageCache2.getPicList(data["ticketlist"],"imageid",AmApp.config.Merchant) .then(function(){ $scope.ticketlist = data.ticketlist; $scope.querycount = data.querycount; console.log($scope.ticketlist); }); }
.factory('imageCache2',function($q, $cordovaFile, $cordovaFileTransfer){
// =================================================
// 图片缓存体系($q, $cordovaFile, $cordovaFileTransfer)
// imageCache2.createPath()
// imageCache2.getPic(file, typeUrl, defaultUrl)
// imageCache2.getPicList(list,key,typeUrl,defaultUrl)
// =================================================
var getPic = function(file, typeUrl, defaultUrl){
var q = $q.defer();
var icDefaultUrl = "img/merchant/noImage.png";
if (defaultUrl != undefined && defaultUrl != "") {
icDefaultUrl = defaultUrl;
}
if (!file) {
q.resolve(icDefaultUrl);
}
if (!cordova.file) {
// 非手机环境,直接返回连接
var
url = AmApp.config.ServiceImagePath + typeUrl
+ file;
q.resolve(url);
} else {
var path = "";
if (ionic.Platform.isAndroid()) {
path = cordova.file.externalDataDirectory;
} else if (ionic.Platform.isIOS()) {
path = cordova.file.dataDirectory;
}
path += "img/" + typeUrl;
$cordovaFile.readAsDataURL(path, file).then(
function(result) {
q.resolve(result);
},
function() {
// 图片不存在或其他异常,返回拼接的图片url地址并下载图片
String
url = AmApp.config.ServiceImagePath
+ typeUrl + file;
var options = {};
var trustHosts = true;
$cordovaFileTransfer.download(url,
path + file, options,
trustHosts).then(
function(result) {
// q.resolve(url);
}, function(err) {
// q.resolve(url);
});
q.resolve(url);
});
}
return q.promise;
}
// 查询图片列表
var imgDeal = function(item, key, typeUrl, callback, defaultUrl){
// file = item[key]
getPic(item[key], typeUrl, defaultUrl).then(function(result) {
item[key] = result;
callback.call(this);
});
}
return {
// getPic: function(file, typeUrl, defaultUrl){},
getPic: getPic,
getPicList: function(list,key,typeUrl,defaultUrl){
var q = $q.defer();
var deal = 0;
for (var i = 0; i < list.length; i++) {
imgDeal(list[i], key, typeUrl, function() {
deal++;
if (deal == list.length) {
q.resolve('success');
}
}, defaultUrl);
}
return q.promise;
},
createPath: function() {
if (!cordova.file) {
// 非手机环境,不做处理
return;
}
var path = "";
if (ionic.Platform.isAndroid()) {
path = cordova.file.externalDataDirectory;
} else if (ionic.Platform.isIOS()) {
path = cordova.file.dataDirectory;
}
var dir = "img";
$cordovaFile.createDir(path, dir, false).then(
function() {
path += dir + "/";
dir = "merchant";
$cordovaFile
.createDir(path, dir, false)
.then(function() {
}, function() {
});
dir = "module";
$cordovaFile
.createDir(path, dir, false)
.then(function() {
}, function() {
});
},
function() {
path += dir + "/";
dir = "merchant";
$cordovaFile
.createDir(path, dir, false)
.then(function() {
}, function() {
});
dir = "module";
$cordovaFile
.createDir(path, dir, false)
.then(function() {
}, function() {
});
});
},
// end
}
})

浙公网安备 33010602011771号