2017-02-09 17 views
0

問題は本当に奇妙です。 app.component.tsのIonic 2ではこのコードがあります。問題は、最初に私をホームページにリダイレクトした後、jsonからデータをロードすることです。結果として、ホームページで私は未定義になります。データがロードされる前にホームページが開始されています。IONIC 2

app.component.tsのコード:

export class MyApp { 

public rootPage : any; 

constructor(public platform: Platform, data : Data) { 

this.platformready(); 
    data.loadData(); 

    this.rootPage = HomePage; 

} 

private platformready() { 
    this.platform.ready().then(() => { 

    Splashscreen.hide(); 

}); 

} 

} 

答えて

1

もしあなたloadDataリターンの約束:

this.platformready(); 
    data.loadData().then(res => { 
    // do something with data 
    this.rootPage = HomePage; 
    }) 
    .catch(err => { 
    // alert error 
    }); 
} 

かの観察可能なリターン

this.platformready(); 
    data.loadData().subscribe(res => { 
    // do something with data 
    this.rootPage = HomePage; 
    },err => { 
    // alert error 
    }); 
} 
+0

@Tipe Phan、しかし、私はホームページでデータを取得したいと思います。あなたのソリューションでは、プロバイダーではなく、app.componentにデータがあるので、ホームページに渡すことはできません。 – djumerko

+1

ああ、 'root'ではなくHomePageでデータを読み込むこともできますし、共有サービスを作成することもできます。ホームページはこのサービスからデータを受け取ります。' load done 'はデータを出力します。 –

+0

いくつかの例がありますか?この問題を解決するコードですか?もしそうなら、送ってください。 – djumerko

0

ですDataプロバイダ?

それはちょうどこのように、ionViewWillLoad(){}内の自分のホームページにそれを呼び出すされた場合:それはなら

constructor(data : Data) {} 

ionViewWillLoad(){ 
    data.loadData(); 
} 

そして、このようにあなたは、変数では、どこにでもデータベースを保存することができ、などアプリで後で変更されるデータは、代わりに ionViewWillEnter(){}を使用できます。

希望します。

関連する問題