我想在我的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,但它没有用。我无法找到做到这一点的好方法。
我忘记了什么吗?
答案 0 :(得分:0)
好的,我发现了问题:
我改变了我的服务:
mod.factory('Cities', ['$resource', function($resource) {return $resource('cities/', {}, {'query' : {method : 'GET', cache : true, isArray:true } });}]);
- > '查询'而不是列出'并添加isArray:true。