[英]Store JSON to localstorage not working
按下按鈕后,我想將一個項目(嵌套的JSON)保存到一個新的Array中,並將其存儲到localstorage中。
addFavourite(card) {
console.log(JSON.stringify(card));
var cards = [];
this.cardfavouriteArray.push.apply(cards, card)
this.storage.set('favouriteData', this.cardfavouriteArray);
}
getData() {
var data = this.storage.get('favouriteData');
if(data){
this.storage.get('favouriteData').then((val) => {
console.log('test', JSON.stringify(val));
});
}
我沒有錯誤,但'test'總是空的。 我需要它作為一個數組。
localstorage
Set
和Get
方法因您使用的服務而異
1. HTML5 localStorage - 如果您直接使用HTML5 localStorage,那么您應該使用localStorage.getItem
和localStorage.setItem
2.localstorage僅限於存儲字符串鍵/值對。使用設置和從localstorage獲取時使用JSON.stringify和JSON.parse
addFavourite(card) {
console.log(JSON.stringify(card));
var cards = [];
this.cardfavouriteArray.push.apply(cards, card)
this.storage.setItem('favouriteData', JSON.stringify(this.cardfavouriteArray));
}
getData() {
var data = this.storage.get('favouriteData');
if(data){
this.storage.getItem('favouriteData').then((val) => {
console.log('test', JSON.parse(val));
});
}
3. ng2-webstorage - 對於ng2-webstorage
this.storage.retrieve
和this.storage.store
將起作用。
改變this.storage.set('favouriteData', this.cardfavouriteArray);
to localStorage.set('favouriteData', JSON.stringify(this.cardfavouriteArray));
(這是一個預先定義的角度方法)。 也將字符串化。
在本地存儲中設置數組,如下所示:
localStorage.setItem('favouriteData', JSON.stringify(this.cardfavouriteArray));
從本地存儲中獲取數組,如下所示:
var data = JSON.parse(localStorage.getItem('favouriteData'));
說明:因為localstorage不能存儲對象,所以它以字符串格式存儲。 所以我們需要JSON.stringify對象。 localStorage還有函數名setItem和getItem,如下所示: http : //developer.mozilla.org/en-US/docs/Web/API/Window/localStorage 。 當我們從localstorage獲取字符串時,我們需要JSON.parse將其轉換回對象。
您正在使用this.storage.set和this.storage.get。 目前尚不清楚您使用的是哪個庫,但我提到的代碼可以在Angular或任何框架中使用。 由於localStorage.setItem和localStorage.getItem是純javascript。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.