2015-03-30 1 views
0

Как я могу проверить localStorage до того, как ngResource делает запрос? Я хочу, чтобы мой объект ресурса проверял локальное хранилище, прежде чем я сделаю запрос на сервер. Я хочу сохранить свой первоначальный ответ с сервера в локальном хранилище, а затем, если пользователь перезагрузит страницу, вам не придется снова делать запрос и вместо этого вытаскивать его из локального хранилища.Как проверить localStorage, прежде чем ngResource сделает запрос?

(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)); 
+1

Не могли бы вы предоставить код, с которым вы работали до сих пор, пожалуйста? – taxicala

+0

Я добавил некоторые из моего кода –

ответ

0

Я думаю, что комментарии вы оставили в коде, это хороший способ справиться с этим:

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

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

И затем, в Resolve обратного вызова своего обещания, вы должны сохранить значение в LocalStorage ,

+0

Я думал о том, чтобы обрабатывать его там, я просто подумал, что должен быть лучший способ сделать это. –

+0

Вы можете создать службу, которая будет зависить от вашего ресурса accountResource, который будет проверяться с помощью ключа, если это значение присутствует, и вы можете повторно использовать его по вашему приложению, но вам все равно придется использовать его в вашем методе get. – taxicala

+0

Что такое 'resource' в' resource.get(). $ Prom; '? –

Смежные вопросы