场景下开发-angular 图片缓存服务
angular 服务
1.$q, imageCache
2.$q, $cordovaFile, $cordovaFileTransfer
服务调用
1.index.html 引入资源文件
2.controller 引入服务名称
3.调用服务
4.服务资源js文件可以自己调用自己
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
imageCache1.getPic(data.imageid, AmApp.config.Merchant).then( function(result) { $scope.merchantDt.imageid = result; });
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
imageListCache1 .dealImageList(data["ticketlist"],"imageid",AmApp.config.Merchant) .then( function() { $scope.ticketlist = data.ticketlist; $scope.querycount = data.querycount; console.log($scope.ticketlist); })
.factory('imageListCache1',function($q, imageCache){ console.log('test') //================================================= // 图片列表缓存($q, imageCache) // imageCache.createPath() // imageCache.getPic(file, typeUrl, defaultUrl) //================================================= var imgDeal = function(item, key, typeUrl, callback, defaultUrl){ imageCache.getPic(item[key], typeUrl, defaultUrl).then(function(result) { item[key] = result; callback.call(this); }); } return{ // init: function(){}, dealImageList: 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; } // END } }) .factory('imageCache1',function($q, $cordovaFile, $cordovaFileTransfer){ //================================================= // 图片缓存体系($q, $cordovaFile, $cordovaFileTransfer) // imageCache.createPath() // imageCache.getPic(file, typeUrl, defaultUrl) //================================================= return { // init: function(){}, 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; }, 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 } })