2016-05-05 33 views
3

我遇到了一個問題,其中緩存的對象與正確的數據不相似,所以我想它可以將最新的版本推送到瀏覽器緩存中,這將解決我的問題。如何更新localStorage項目?

如何用新對象更新localStorage?所以,如果我有一個控制器與更新評估。我怎樣才能將評估對象推送到localStorage?

+0

'localStorage.setItem()'不應該工作? – felipsmartins

回答

3

要做到這一點與原生的JavaScript,你會做這樣的事情:

​​

內的角的情況下,你應該將localStorage服務作爲localStorage的包裝並將其注入到服務或控制器中。或者你也可以注入$window並使用它直接從像的:$window.localStorage

0

如果對象是JSON格式(不確定Angular是否使用其他格式),您可以使用setItem()getItem()方法來更新和檢索本地存儲項目!

例如從以下後採取: http://thejackalofjavascript.com/storing-objects-html5-local-storage/

var me = {name:'myname',age:99,gender:'myGender'}; 
localStorage.setItem("user",me); 
//fetch object 
console.log(localStorage.getItem("user")); // will return "[object Object]" 
0

您可以使用全功能的角模塊angular-local-storage

的AngularJS模塊,使您可以訪問瀏覽器本地 存儲與餅乾後備

設置

myApp.controller('MainCtrl', function($scope, localStorageService) { 
    //... 
    function submit(key, val) { 
    return localStorageService.set(key, val); 
    } 
    //... 
}); 

得到

myApp.controller('MainCtrl', function($scope, localStorageService) { 
    //... 
    function getItem(key) { 
    return localStorageService.get(key); 
    } 
    //... 
});