6

CacheFactory を使用してサービスを作成しました。私はそれがシングルトンであることを期待していました。コントローラーに挿入すると、コントローラーの範囲内で正常に動作します。しかし、別のスコープを持つ別のページに移動すると、別のスコープの同じコントローラーに保存した値がキャッシュにないように見えます。CacheFactory の動作は、CacheService を注入するすべての場所に同じキャッシュ オブジェクトがあるシングルトンであるべきではありませんか?

これは例としての私のサービスです:

angular.module('MyService', []).factory('CacheService', function($cacheFactory) {
        return $cacheFactory('cacheService', {
            capacity: 3 // optional - turns the cache into LRU cache
        })
    });

次に、私のコントローラーで:

function MyController($scope, CacheService) {
   var results= CacheService.get('storedvalue');
   if(!results){
       CacheService.put('storedvalue', results);
      alert('results not stored');
   }
   else
      alert('results stored');
}
4

1 に答える 1