2015-03-30 39 views
0

如何在ngResource發出請求之前檢查localStorage?我希望我的資源對象在向服務器發出請求之前檢查本地存儲。我想將我的初始響應從服務器存儲在本地存儲中,然後如果用戶重新加載頁面,則不必再次發出請求,只需將其從本地存儲中取出即可。如何在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)); 
+1

您能否提供迄今爲止使用過的代碼? – taxicala 2015-03-30 19:57:22

+0

我添加了一些我的代碼 – 2015-03-30 20:02:40

回答

0

我想你已經留在代碼中的註釋是來處理這一個好辦法:

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

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

,然後在你的承諾的決心回調,你應該存儲在localStorage的值。

+0

我正在考慮在那裏處理它我只是認爲必須有一個更好的方法來做到這一點。 – 2015-03-30 20:10:35

+0

您可以創建一個服務,該服務將作爲您的accountResource的依賴項,如果該值存在並且您可以在應用程序中重用該服務,則該值將與鍵一起檢查,但您仍然需要在get方法中使用它。 – taxicala 2015-03-30 20:12:09

+0

什麼是resource.get()中的'resource'。$ promise;'? – 2015-09-23 07:03:47

相關問題