2017-01-12 13 views
0

私はアプリケーションを構築しており、サーバーからデータを取得して別に表示しようとしています。このために私はストレージを使用して、app.component.tsに私は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

データを取得した後、ルートページをデバイス準備完了状態で呼び出す必要があります。したがって、app.component.tsではrootsPageをデバイスの準備に移行しても問題ありません。私はそれが助けて欲しい

関連する問題