3

だから私はキャッシュオブジェクトを作成する単純なファクトリを持っています

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

1 に答える 1

2

データは非常に正当な理由で永続的ではありません。$cacheFactoryキャッシュは、プレーンな JS オブジェクトの薄いラッパーに他なりません。

ソースをチェックして、サービスが単純な LRU アルゴリズムしか実行していないことを確認できます。

データの永続化には、永続ストレージ (おそらくangular-local-storageまたはangular-localForage ) を使用します。persistence をサポートするangular-cacheビルトインの別の代替品です。$cacheFactory

于 2016-05-26T20:25:55.680 に答える