在第一个 $http 请求中,我将结果保存在缓存中我试图测试它是否缓存为空它不应该为空,因为我已经将结果保存在我的缓存中但它给了我
未定义的错误
谁能告诉我的代码出了什么问题
这是控制器
vm.getTopHotels = function(){
var hotelsLimit = 10;
var top_hotels =
dataService.getHotels()
.then(
function(hotels){
console.log(hotels);
sortHotels = commonMethods.sortHotels(hotels.data.data,'Rating','SORT_DESC');
hotelDetailsCheck = checkDetailsIfExists(sortHotels);
//Get only top 10 hotels for home page
top_hotels = hotelDetailsCheck.slice(0,10);
vm.topHotels = top_hotels;
},
function(err){
console.log(err);
});
};
vm.getTopHotels();
vm.getRHotels = function(){
dataService.getHotels()
.then(function(hotels){
console.log('hotels recieced 2 ');
},
function(err){
console.log(err);
});
}
vm.getRHotels();
**dataService 是 Facotry 在这里调用 $http 方法 ** 为 vm.getTopHotels 我将结果保存在缓存中,所以 getRHotels 在调用 $Http 时我正在检查如果缓存不为空,它应该检索数据如果没有,则从缓存中调用 $Http 请求,但是对于此函数,它也在调用 $http 为什么?因为我已经将结果保存在缓存中,谁能告诉我出了什么问题?
这是调用 $http 方法并保存在缓存中的 dataService 代码
(function(){
angular
.module('app')
.factory('dataService',DataFactory);
DataFactory.$inject = ['$http','$q','$cacheFactory']
function DataFactory($http,$q,$cacheFactory){
var cache = $cacheFactory('localCache');
var service = {
getHotels:getHotels
};
return service;
function getHotels(){
var def = $q.defer();
var hotelsData = cache.get('hotelsData');
console.log(hotelsData);
if(!hotelsData){
}
}
}
})();
梦里花落0921
波斯汪