在AngularJS中使用缓存时出错

时间:2016-09-09 12:35:22

标签: javascript angularjs

我第一次加载我的模态HTML页面并获取正确的数据,但如果我尝试第二次加载我收到错误,

请在下面找到我的JS代码,

var cache = $cacheFactory('cacheId');
var cacheData = cache.get('xml');

if (!cacheData) {
    MyRestApi.getData($scope.data1).then(function(response) {
        cacheData = response;
        cache.put('xml', cacheData);
    });
} else {
    var processdata = cache.get('xml');
}

在我的MyRestApi.js中,我使用下面的代码,

getData: function(Key) {
    return $http.get(baseURL + '/getDetails/' + Key, {
        headers: header,
        cache: true
    });
}

这是我第一次在angular JS中使用$ cache,请告诉我为什么会收到此错误。我第二次加载相同的模态页面,我收到此错误。 获取angular.js:13568错误:[$ cacheFactory:iid] CacheId' cacheId'已经被拿走了!

1 个答案:

答案 0 :(得分:0)

这就够了:

getData: function(Key) {
    return $http.get(baseURL + '/getDetails/' + Key, {
        headers: header,
        cache: true
    });
}

第一次获取数据时,它将存储在http缓存中。第二次发出相同的请求时,它将传递缓存的值而不是再次获取它。只需查看开发工具中的网络选项卡即可确认。

但是,如果您有一个单页应用程序,则重新加载(f5)页面将重置缓存。