angular 图片缓存服务2.0
改变:合二为一
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 } })