标签: cachefactory

从Angular cacheFactory获取密钥

当我列出$ cacheFactory对象时,它有几个方法,但我没有看到实际的键/值缓存.

假设您正在查看$ http缓存,$ cacheFactory($ http)如何获取当前缓存的密钥列表或理想情况下的密钥和值?

angularjs cachefactory

6
推荐指数
1
解决办法
1034
查看次数

在某些操作后强制 Angular 清理 $cacheFactory

所以我们以这种方式从下拉资源模块中的下拉列表中缓存值

var cache = new CacheFactory('DropDownResource', {
      maxAge: 3600000,
      deleteOnExpire: 'aggressive',
      capacity: 5,
      storageMode: 'sessionStorage'
    });
Run Code Online (Sandbox Code Playgroud)

然后在 $http 回调中,我们以这种方式保存下拉数据

cache.put('dataForDropDown', data);
Run Code Online (Sandbox Code Playgroud)

在其他模块中,我们可以更改用户设置,尤其是更改语言。在此操作之后,我需要清理缓存。因为当用户更改语言并转到带有下拉列表的页面时,他希望看到带有所需语言的下拉列表。

因此,在带有下拉列表的页面上,我们需要再次向服务器发送调用。为此,我们需要在语言更改后清理缓存。

我们怎么做?

我在下拉模块中尝试此代码。

var cache = $cacheFactory('dataForDropDown'); cache.remove('dataForDropDown');

但它不起作用。它说已经创建了名为 dataForDropDown 的缓存。我不明白我做错了什么

angularjs cachefactory

5
推荐指数
0
解决办法
1061
查看次数

Angularjs cacheFactory:id已被占用

我使用$ cacheFactory为应用程序存储语言JSON文件,并且每个新路由运行一个工厂方法,如下所示:

index.js

$routeProvider
    .when('/',{
      'templateUrl':'views/home/index.html',
      'controller':'Home',
      'resolve': {
        'onEnter': function ($rootScope, langFactory) {

          return langFactory.getLangFile($rootScope.lang.appLang);
        }
      }
    })
    .when('/auth/login',{
      'templateUrl':'views/auth/login.html',
      'controller':'AuthLogin',
      'resolve': {
        'onEnter': function ($rootScope, langFactory) {

          return langFactory.getLangFile($rootScope.lang.appLang);
        }
      }
    })
Run Code Online (Sandbox Code Playgroud)

factories.js

.factory('langFactory', ['$rootScope', '$window', '$http', '$cacheFactory', '$q', function ($rootScope, $window, $http, $cacheFactory, $q) {

    var getLangFile = function (langCode) {

      var deferred = $q.defer()
        , cache = $cacheFactory('langCache');

      if (!!!cache.get('cache' + $rootScope.lang.appLang)) {

        $http.get(langCode + '-langFile-to-be-REMOVED.json').success(function (response) {

          cache.put('cache'  +  $rootScope.lang.appLang, response);

          deferred.resolve();

        }).error(function (err) { …
Run Code Online (Sandbox Code Playgroud)

javascript factories angularjs cachefactory

4
推荐指数
1
解决办法
4180
查看次数

标签 统计

angularjs ×3

cachefactory ×3

factories ×1

javascript ×1