gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:59:40 25 4
gpt4 key购买 nike

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

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

然后在 $http 回调中,我们以这种方式保存下拉数据
cache.put('dataForDropDown', data);

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

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

我们该怎么做?

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

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



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

最佳答案

根据文档,$cacheFactory('name')返回一个新的缓存对象。如果要让缓存对象调用它的removeAll方法写这样的东西:

angular.module('superCache')
.factory('superCache', ['$cacheFactory', function($cacheFactory) {
return $cacheFactory('super-cache');
}]);

这会将工厂注册到您的模块。工厂 superCache包含缓存对象。您可以调用 removeAll清除它方法。或者您可以使用 remove(key) 从缓存中删除特定项目方法并且它可以在 Controller 和服务中注入(inject)(像其他 angular.factory 一样)。

关于angularjs - 在某些操作后强制 Angular 清理 $cacheFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32449388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com