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

Arrays 如何从存储在ionic中的localStorage中的api检索数据数组,arrays,api,ionic-framework,ionic3,Arrays,Api,Ionic Framework,Ionic3,我一直在尝试在我的应用程序的所有页面上传递从php api返回的数据,但没有结果。我在谷歌上也在这个平台上进行了一系列搜索,但都失败了 我有几行代码,在登录后使用用户用户名通过api从mysql获取用户详细信息 现在,当用户信息是fetch(一个数组)时,我想将该数组存储到ionic本地存储中,并从我的应用程序中的任何位置检索它 下面是我的代码: user.ts ngOnInit(){ this.username = this.navParams.get('username'); var

我一直在尝试在我的应用程序的所有页面上传递从php api返回的数据,但没有结果。我在谷歌上也在这个平台上进行了一系列搜索,但都失败了

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

现在,当用户信息是fetch(一个数组)时,我想将该数组存储到ionic本地存储中,并从我的应用程序中的任何位置检索它

下面是我的代码:

user.ts

 ngOnInit(){

this.username = this.navParams.get('username');


var headers = new Headers();

headers.append("Accept", 'application/json');

headers.append('Content-Type', 'application/json' );

let options = new RequestOptions({ headers: headers });

let data = {

    username: this.username

     };

let loader = this.loading.create({

content: 'Preparing your page',

});

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.navCtrl.push(PostPage, data); 


     }

//Store to storage
     saveData() {
      var jsonObj = this.items;
      window.localStorage.setItem('myJsonKey', JSON.stringify(jsonObj));
      //console.log('my itmes:', jsonObj);
     }
我怎样才能从应用程序的任何地方获取这些数据呢

谢谢。

制作保存数据()如下

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

});
然后,像下面那样使用它

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

});
--更新--

在其他页面中生成getData()函数。或者最好使用服务通过存储来保存和加载项目。请参阅

用法


this.getData()。然后(…)
将数据存储到
localStorage
时,这里就是

 //Store to storage
 saveData() {
     var jsonObj = this.items;
     window.localStorage.setItem('myJsonKey', JSON.stringify(jsonObj));
     //console.log('my itmes:', jsonObj);
 }
当你想在你的应用程序中的任何地方获取数据时

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

    });
}
更简洁的方法是创建自己的提供者,并将所有存储管理方法放在那个里。然后在ts中调用这些方法

例如,您可以在提供者文件夹下的
user service.ts
中设置方法。创建方法,如
setData()
getData()
,以及它们的工作方式


然后在ts文件中,导入
用户服务.ts
提供程序并调用方法。

请共享日志和错误以澄清您的问题。@HyuckKang,我没有问题,我只是问如何存储返回的数组from=>this.http.post(',options.).map(res=>res.json()).subscribe(res=>{loader.dismise()this.items=res.server_response;console.log(this.items);});到存储并在我的应用程序中的任何位置检索。感谢您的回复。但是,请问,我应该如何在另一页中显示它?比如说,如果我想在profile.html上显示详细信息?