2013-03-14 51 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