2017-08-31 69 views
0

这就是我如何节省1个记录如何保存1个键值对中的多个记录?

save.ts

save(){ 

     this.sectionObj = { 
          "name" : this.myname, 
          "contactno" : this.contactno 
         }; 
     localStorage.setItem("resume",JSON.stringify(this.sectionObj)); 
     } 

本地存储的结果如下

key是恢复

value

{ 
"name":"saurabh..", 
"contactno":"892732224" 
} 

现在我想在这个键值中添加另一条记录,我该如何做到这一点,以便每次保存时都会追加一条新记录,而不仅仅是更新当前的记录?

+0

您需要加载它,解析它,编辑它并保存回去。 加载它使用JSON.parse(localStorage.getItem('简历')) –

+0

好吧我得到你,请帮助我如何解析它并添加'this.sectionObj'它,保存应该类似,我相信 – user2828442

+0

Make数组并推送所有值并将其存储在本地存储器 – Sreemat

回答

0
add(key: string, value: string) { 
    // Read currently saved object 
    const tmp = localstorage.getItem('resume'); 
    this.sectionObj = JSON.parse(tmp); 

    // Add new key/value pair 
    this.sectionObj[key] = value; 

    // Save again 
    localStorage.setItem('resume', JSON.stringify(this.sectionObj)); 
} 
0

试试这个代码来读,写和处理异常,我希望它帮全给你

setData(){ 
let tmpdata = localstorage.getItem('resume'); 
this.sectionObj = { name : this.myname, contactno : this.contactno }; 
if (tmpdata){ 
    this.tmpSectionObj = JSON.parse(tmpdata); 
    this.tmpSectionObj.push(this.sectionObj); 
    localstorage.setItem('resume',JSON.stringify(this.tmpSectionObj)); 

    }else{ 

    localstorage.setItem('resume', JSON.stringify([])); 
    } 
} 
+0

请注意sectionObj = {};不是一个数组,但dataObj = [];是,我该怎么办? – user2828442

+0

使用其他一些变量从本地存储中获取对象数组,并通过数组索引值获取特定对象并在此指定.sectiinObj –

+1

使用您的建议代码检查编辑答案 –

0

你可以使用这个基本概念 - 1.获取现有的项目中本地存储 2.解析它,如果存在 3.推新对象 4.更新本地存储

逻辑-

save(){ 
    dataObj = []; 
    this.sectionObj = { "name" : this.myname, 
          "contactno" : this.contactno 
         }; 

    data = localStorage.getItem('resume'); //get existing item in localstorage 
    if(data) //check if it exists or not empty 
    {  
     dataObj = JSON.parse(data); //parse string 
    } 
    dataObj.push(this.sectionObj); 
    localStorage.setItem("resume",JSON.stringify(dataObj)); 
} 
+0

像这样 - this.data = localStorage.getItem( '恢复'); //获取localstorage中的现有项目 if(this.data)//检查是否存在空 this.dataObj = JSON.parse(this.data); //解析字符串 } this.dataObj.push(this.sectionObj); localStorage.setItem( “简历”,JSON.stringify(this.dataObj));',它说运行时错误 this.dataObj.push不是一个函数 – user2828442

+0

请注意sectionObj = {};不是一个数组,但dataObj = [];是,我该怎么办? – user2828442

+0

您始终可以将对象推入数组中。因此,如果您的本地存储没有“简历”项,那么您必须先创建一个空数组,然后向其中添加一个对象,然后保存在本地存储中。在下一次调用中,您将在localstorage中拥有一个包含一个对象的数组。现在您可以将新对象推入现有数组,然后保存。希望澄清! –