1. 程式人生 > >場景下開發-angular 圖片緩存服務2.0

場景下開發-angular 圖片緩存服務2.0

fault nload pre adas his lar actor 服務 return

改變:合二為一

技術分享
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); }); }
View Code

.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 } })

場景下開發-angular 圖片緩存服務2.0