如何从ionic中存储在localStorage中的api中检索数据数组

时间:2018-07-11 21:42:17

标签: arrays api ionic-framework ionic3

我一直试图在我的应用程序的所有页面之间传递从php api返回的数据,但无济于事。我也在这个平台上也在Google上进行了系列搜索,但都失败了。

我有以下几行代码,该代码行在登录后使用用户名通过api从mysql获取用户的详细信息。

现在,当获取用户信息时,这是一个数组,我想将该数组存储到离子本地存储中,然后从我的应用程序中的任何位置检索它。

下面是我的代码:

user.ts

"npm --prefix \"%RESOURCE_DIR %\" run lint"

我该如何处理才能从应用程序中的任何位置获取这些数据?

谢谢。

2 个答案:

答案 0 :(得分:0)

使 saveData()如下所示

saveData(item:any) {
  window.localStorage.setItem('myJsonKey', JSON.stringify(item));
}

然后,像下面一样使用它

loader.present().then(() => {

 this.http.post('http://edmon.com/api/retrieve.php',data, options)

 .map(res => res.json())

 .subscribe(res => {

   loader.dismiss()

   //this.items=res.server_response;
   //console.log(this.items);
   this.saveData(res.server_response)
  });

});

-更新-

在其他页面中

make getData()函数。或者最好使服务通过存储来保存和加载项目。请参阅angular service tutorrials

getData():Promise<any>{
  return new Promise<any>((resolve,reject)=>{
    window.localStorage.getItem('myJsonKey').then((item)=>{
      resolve(JSON.parse(item))
    }).catch((err)=>{console.log(err); reject()})
  }); 
}

如果您熟悉asyncawait,请考虑以下简单版本。

async getData():Promise<any>{
  try{
    let item = await window.localStorage.getItem('myJsonKey')
    return JSON.parse(item)
  }catch(err){
    console.log(err);
    throw ''
  }
}

用法

this.getData().then(...)

答案 1 :(得分:0)

这是将数据存储到vector<bool>的时候。

localStorage

这是您想在应用程序中任何位置获取数据的时候。

 //Store to storage
 saveData() {
     var jsonObj = this.items;
     window.localStorage.setItem('myJsonKey', JSON.stringify(jsonObj));
     //console.log('my itmes:', jsonObj);
 }

更干净的方法是创建您自己的提供程序,并将所有用于存储管理的方法放在那儿。然后在您的ts中调用这些方法。

例如,您在提供者文件夹下的//Get from storage getData(){ window.localStorage.getItem('myJsonKey').then( data => { // if you want to convert it back to JSON // create variable retData in your ts file // retData = any; this.retData = JSON.parse(data); }); } 中设置方法。创建诸如user-service.tssetData()之类的方法,以及它们如何工作。

然后在ts文件中,导入getData()提供程序并调用方法。