如何在ngResource发出请求之前检查localStorage?

时间:2015-03-30 19:53:42

标签: angularjs ngresource

如何在ngResource提出请求之前检查localStorage?在向服务器发出请求之前,我希望我的资源对象检查本地存储。我希望将来自服务器的初始响应存储在本地存储中,然后如果用户重新加载页面,则不必再次发出请求,而只是将其从本地存储中取出。

(function (angular) {
'use strict';

angular.module('myApp')
.factory('accountResource', function($resource) {

var entity = 'account';
var serverUrl = 'my/url/to/thing/';
var entityUrl = serverUrl + entity;
var resource = $resource(entityUrl + '/', {});

return {
  get: function() {

      //I am thinking about doing a check in here but wondered if there is a better way 
      return resource.get().$promise;
 }
};

});

}(angular));

2 个答案:

答案 0 :(得分:0)

我认为您在代码中留下的评论是处理此问题的好方法:

get: function() {
    var fromStorage = localStorage.getItem('foo');

    return fromStorage ? fromStorage : resource.get().$promise;
 }

然后,在您的承诺的解决回调中,您应该将值存储在localStorage中。

答案 1 :(得分:0)

我猜angular-cache是你最好的选择。请查看Using angular-cache with $http部分