我已将角度缓存添加到我的应用中,并创建了我的项目,如下所示:
angular.module('rotaryApp', ["ionic", "angular-cache"])
.run(function($ionicPlatform, CacheFactory) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
CacheFactory("songsDataCache", { storageMode: "localStorage", maxAge: 360000, deleteOnExpire: "aggressive" });
CacheFactory("versesCache", { storageMode: "localStorage", maxAge: 360000, deleteOnExpire: "aggressive" });
CacheFactory("chorusCache", { storageMode: "localStorage", maxAge: 360000, deleteOnExpire: "aggressive" });
CacheFactory("imageCache", { storageMode: "localStorage", maxAge: 360000, deleteOnExpire: "aggressive" });
CacheFactory("searchCache", { storageMode: "localStorage", maxAge: 360000, deleteOnExpire: "aggressive" });
//CacheFactory("myTeamsCache", { storageMode: "localStorage" });
//CacheFactory("staticCache", { storageMode: "localStorage" });
}); })
我的服务如下所示:
(function () {
'use strict';
angular.module('rotaryApp').factory('eliteApi', ['$http', '$q', '$ionicLoading','CacheFactory', eliteApi]);
function eliteApi($http,$q,$ionicLoading,CacheFactory ) {
var songid;
self.songsDataCache = CacheFactory.get("songsDataCache");
self.versesCache = CacheFactory.get("versesCache");
self.chorusCache = CacheFactory.get("chorusCache");
function getLeagues(){
var defered = $q.defer(),
cacheKey = "songs",
songsData = self.songsDataCache.get(cacheKey);
if(songsData){
console.log("found data in cache");
defered.resolve(songsData);
} else {
$ionicLoading.show({template: 'Loading Songs...'})
var url = "http://bestng.com/notrealurl";
$http.get(url)
.success(function (data) {
$ionicLoading.hide();
console.log("Received data via HTTP");
self.songsDataCache.put(cacheKey, data);
defered.resolve(data);
})
.error(function (data){
defered.reject();
});
}
return defered.promise;
}
function setSongid(sid){
songid = sid;
}
return {
getLeagues: getLeagues,
getLeaguesByTitle: getLeaguesByTitle,
getVerse:getVerse,
getChorus:getChorus,
getLeagueData: getLeagueData,
setSongid: setSongid
};
};
})();
以下是我的控制器:
(function () {
'use strict';
angular.module('rotaryApp').controller('LeaguesCtrl', ['$state', 'eliteApi', LeaguesCtrl]);
function LeaguesCtrl($state, eliteApi) {
var vm = this;
eliteApi.getLeagues().then(function(data){
vm.leagues = data;
});
};
})();
当我'离子服务'时,getLeagues函数在我的浏览器中工作正常但是一旦我做'离子模拟android'它只是返回一个空白屏幕。 我需要帮助解释为什么它在我的浏览器中工作但不能在我的apk中工作。
感谢您的时间。
问候