$cacheFactory удаляет мой кеш при перезагрузке страницы
Итак, у меня есть простая фабрика, которая создает объект кеша
.factory('jsonCache',function($cacheFactory){
console.log("Creating cache");
return $cacheFactory('weatherCache');
});
Затем я вызываю этот кеш-объект внутри моего контроллера, передавая его вот так. Но по какой-то причине данные не являются постоянными. Каждый раз, когда я перезагружаю страницу, кеш снова пуст.
Есть идеи? Я что-то пропустил?
.controller('citiesListCtrl',function($scope,$http,$filter,jsonCache){
jsonCache.get('weatherCache');
console.log(jsonCache); <----- EMPTY
$http.get(url)
.then(function(response) {
jsonCache.put('weatherCache', response.data.records);
console.log(jsonCache); <--- HAS DATA
});
)}
1 ответ
Данные не являются постоянными по очень веской причине: $cacheFactory
Кеш - это не что иное, как тонкая оболочка вокруг простого объекта JS.
Вы можете проверить источник, чтобы убедиться, что служба не выполняет ничего, кроме простого алгоритма LRU.
Для сохранения данных используйте постоянное хранилище (возможно, https://github.com/grevory/angular-local-storage или https://github.com/ocombe/angular-localForage). angular-cache
это еще одна замена для встроенного $cacheFactory
это поддерживает настойчивость.