我正在构建一个应用程序并尝试从服务器检索数据并单独显示它。为此我在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上并首次打开它时......它不会加载任何内容,直到我退出程序并再次打开它!
我不知道为什么会这样做......或者如果有更好的方法可以做到这一点!!我正在尝试这种方式来减少设备离线时检索数据的加载时间,以便在本地存储上显示最后存储的数据。
答案 0 :(得分:0)
检索数据后,需要在设备就绪中调用您的根页面。所以在你app.component.ts中将rootspage移动到设备就绪,它应该没问题。我希望它有所帮助。