我想缓存从 service.js 返回的资源对象,以便一次又一次地不命中 API 并且响应时间很快。我该如何使用它?尝试了几个样品,但无法使其发挥作用。
我的控制器.js
app.controller('MyCtrl2', ['$scope', '$rootScope', '$location', 'UserFactory', 'ProductFactory', '$q', 'Reddit', function ($scope, $rootScope, $location, UserFactory, ProductFactory, $q, Reddit) {
$scope.casualShirts = function () {
console.log("casualshirts");
$rootScope.home = ProductFactory.home.query({productcategory: 'Men Casual Shirts'});
var pagesShown = 1;
var pageSize = 21;
$scope.paginationLimit = function(data) {
//alert("34");
return pageSize * pagesShown;
};
$scope.hasMoreItemsToShow = function() {
return pagesShown < ($rootScope.home.length / pageSize);
};
$scope.showMoreItems = function() {
pagesShown = pagesShown + 1;
};
$location.path('/view2');
}
}]);
我的 service.js
services.factory('ProductFactory', ['$resource', '$rootScope', '$cacheFactory', function ($resource, $rootScope, $cacheFactory) {
/*alert("I am here service");*/
console.log("casualshirts service");
return {
home: $resource('/rest/products/:productcategory', {}, {
query: {method: 'GET', isArray: true,cache: $cacheFactory, },
create: {method: 'POST'}
})
}]);
另外,我如何设置过期时间,缓存会在一段时间后刷新。
一个 jsfiddle 将是一个很大的帮助。感谢这里的所有聪明人。