从存储中检索和加载数据

时间:2017-01-12 04:16:41

标签: angular ionic2

我正在构建一个应用程序并尝试从服务器检索数据并单独显示它。为此我在app.component.ts中使用Storage我已经调用了server.ts并将其存储到共享的本地服务中:

app.component.ts:

  constructor(platform: Platform, public jobsData: JobsData, public storage: Storage, public local: Local) {
       platform.ready().then(() => {
        // Okay, so the platform is ready and our plugins are available.
        // Here you can do any higher level native things you might need.
        StatusBar.styleDefault();
        Splashscreen.hide();

     jobsData.load().subscribe(res => {
        local.localData(res);
     });
  });

这是本地服务:

@Injectable()
  export class Local {

    constructor(public storage: Storage) { }
       localData(data){
       this.setLocalData(data);
    }

    setLocalData(data){
     this.storage.set('data', JSON.stringify(data));
    };

    getLocalData(){
     return this.storage.get('data').then((value) => {
     return JSON.parse(value);
    });
   };

和我在构造函数中的特定页面/组件上显示数据,如下所示:

  local.getLocalData().then((res) => {
    this.jobs = res;
    console.log(this.jobs)
  });

在Web控制台上,它会立即检索并显示数据,但是,当我构建.apk文件并将其安装在Android上并首次打开它时......它不会加载任何内容,直到我退出程序并再次打开它!

我不知道为什么会这样做......或者如果有更好的方法可以做到这一点!!我正在尝试这种方式来减少设备离线时检索数据的加载时间,以便在本地存储上显示最后存储的数据。

1 个答案:

答案 0 :(得分:0)

检索数据后,需要在设备就绪中调用您的根页面。所以在你app.component.ts中将rootspage移动到设备就绪,它应该没问题。我希望它有所帮助。