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

时间:2017-08-31 11:33:41

标签: angular typescript

这是我保存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"
}
  

现在我想在此键值中添加另一条记录,我该怎么做才能在每次附加新记录时保存而不只是更新当前记录?

3 个答案:

答案 0 :(得分:1)

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));
}

答案 1 :(得分: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([]));
  }
}

答案 2 :(得分: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));
}