如何在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));
答案 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部分