2013-03-14 52 views
6

我是新来angularJS并有一个关于缓存等AngularJS高速缓存的REST请求

我有两个步骤的向导,我希望能够单击后退和未来,并具有形式依然弥漫问题因为用户拥有它们。

在我page1Partial我有这样的:

<li ng-repeat="pick in picks | orderBy:orderProperty"> 
<b><span ng-bind="pick.name"/></b> 
<input type="checkbox" ng-model="pick.checked" ng-click="updateBasket(pick)"> 
</li> 

当我去到下一个页面,然后点击后面的checkboxs被清除,因为它给我的Java服务RESful再次被调用。我如何缓存这个响应?

从我的控制器中,每次都会触发我的REST Web服务。

$scope.picks = Pick.query(); 

我的服务

angular.module('picksService', ['ngResource']). 
    factory('Pick', function ($resource) { 
     return $resource('rest/picks/:id', {}, { 
      'save': {method: 'PUT'} 
     }); 
    }); 
+0

使用$ http对象 – 2013-03-14 06:59:58

+0

将配置属性缓存设置为true,其中我该如何设置?我的服务在哪里? – catrapture 2013-03-14 07:06:34

+1

尝试使用shaunlim在这个问题中提出的方法:http://stackoverflow.com/questions/12772255/angularjs-using-shared-servicewith-resource-to-share-data-between-controller – 2013-03-14 07:18:51

回答

19

由于1.1.2(commit),所有的$ httpConfig选项直接暴露在$ resource action对象中:

return { 
    Things: $resource('url/to/:thing', {}, { 
    list : { 
     method : 'GET', 
     cache : true 
    } 
    }) 
}; 
10

如果更换$resource$http那么你可以直接使用下面的代码

$http({ 
    method: 'PUT', 
    url: 'url', 
    cache:true 
}); 
+0

我还没有明确地设置这个缓存值。 Angular 1.4.x中的默认缓存值是多少?我的第一个angularjs/CXF Rest应用程序在各种浏览器上的行为不同。它不会在IE中加载新创建的数据,看起来像使用旧缓存。但在Firefox和Chrome上运行良好。 – Jay 2015-09-15 12:46:25