Angular $资源缓存无法正常工作

时间:2014-05-27 23:50:48

标签: node.js angularjs caching

我想在我的MEAN-stack应用程序中缓存资源。

在客户端我使用一个调用服务器的服务,我在其中放置一个跟踪以查看缓存是否正常工作(每次重新加载页面时都会看到此跟踪)。

在这个例子中,我检索了一个城市列表。

我的控制器:

angular.module('mean.cars').controller('CarsController', ['$scope', '$http', '$stateParams', '$location', 'Global','Cities',
    function ($scope, $http, $stateParams, $location, Global, Cities) {

$scope.cities = Cities.query();

我的服务:

angular.module('mean.sol').factory('Cities', ['$resource',  function($resource) {return $resource('cities/', {}, {list : {method : 'GET', cache : true } });}]);

我也试过这些解决方案:

mod.factory('Cities', ['$resource',  function($resource, $cacheFactory) {return $resource('cities/', {}, {list : {
        'get': { method:'GET', cache: $cacheFactory },
    'query': { method:'GET', cache: $cacheFactory, isArray:true } } });}]);

或者:

mod.factory('Cities', function($resource){
return $resource('cities/', {},
    {get: 
        {
            cache: true,
            method: 'GET'
        }
    }
);

})

一切正常,但没有任何缓存。它总是调用我的服务器。

我尝试了很多解决方案,例如用$ cacheFactory替换$ resource,但它没有用。我无法找到做到这一点的好方法。

我忘记了什么吗?

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题:

我改变了我的服务:

mod.factory('Cities', ['$resource', function($resource) {return $resource('cities/', {}, {'query' : {method : 'GET', cache : true, isArray:true } });}]);

- > '查询'而不是列出'并添加isArray:true。