$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 это поддерживает настойчивость.

Другие вопросы по тегам