Angular 如何在一个键值对中保存多个记录?

Angular 如何在一个键值对中保存多个记录?,angular,typescript,Angular,Typescript,这就是我保存1条记录的方式 save.ts save(){ this.sectionObj = { "name" : this.myname, "contactno" : this.contactno }; localStorage.setItem("resume",JSON.stringify(t

这就是我保存1条记录的方式

save.ts

save(){

        this.sectionObj = { 
                           "name" : this.myname,
                           "contactno"    : this.contactno
                         };
        localStorage.setItem("resume",JSON.stringify(this.sectionObj));
      }
本地存储结果如下所示

已恢复

{
"name":"saurabh..",
"contactno":"892732224"
}
现在我想在这个键值中添加另一条记录,我该如何做才能在每次保存时附加一条新记录,而不仅仅是更新当前记录


尝试此代码来读取、写入和处理异常,我希望它对您完全有帮助

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([]));
  }
}

你可以使用这个基本概念- 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));
}

您需要加载、解析、编辑并保存它。使用JSON.parse(localStorage.getItem('resume')加载它好的,我明白了,请帮助我如何解析它,并向它添加
this.sectionObj
,保存应该是类似的,我相信制作一个数组并推送所有值,然后使用建议的代码将其存储在本地存储器中-`this.data=localStorage.getItem('resume')); //获取localstorage中的现有项if(this.data)//检查它是否存在或不为空{this.dataObj=JSON.parse(this.data);//parse string}this.dataObj.push(this.sectionObj);setItem(“resume”,JSON.stringify(this.dataObj));`,它说运行时错误this.dataObj.push不是函数请注意sectionObj={};不是数组,而是dataObj=[];是的,我该怎么办?你总是可以把一个对象推到一个数组中。因此,如果您的localstorage没有“resume”项,那么您必须首先创建一个空数组,然后向其中添加一个对象,然后保存在localstorage中。在下一次调用中,您将在localstorage中拥有一个包含一个对象的数组。现在,您可以将新对象推送到现有数组中,然后保存。希望这能澄清!请注意节obj={};不是数组,而是dataObj=[];是的,我应该怎么做?使用其他变量从本地存储中获取对象数组,并通过数组索引值获取特定对象,并在this.sectiinObj中赋值
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));
}