2017-02-09 6 views
0

Das Problem, das ich habe, ist wirklich seltsam. In Ionic 2 in app.component.ts habe ich diesen Code. Das Problem ist, dass es mich zuerst auf Home Page weiterleitet und danach Daten aus dem JSON lädt. Als Ergebnis auf der Homepage werde ich undefiniert.Startseite gestartet, bevor Daten geladen werden IONIC 2

Der Code in 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(); 

}); 

} 

} 

Antwort

1

wenn Ihr loadData Rückkehr Versprechen:

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

wenn Rückkehr beobachtbare

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

@Tippe Phan, aber ich möchte die Daten in Home Page erhalten. Mit Ihrer Lösung werde ich die Daten in app.component haben, nicht in einem Provider, so dass ich sie nicht an Home Page übergeben kann. – djumerko

+1

oh, Sie könnten Daten in HomePage laden, nicht in "root", oder Sie könnten Shared Service erstellen, dann wird Homepage Daten von diesem Dienst erhalten, 'root' wird Daten ausgeben, wenn diese' load done' –

+0

haben Sie ein Beispiel Code mit der Lösung dieses Problems? Bitte senden, wenn do. – djumerko

0

Ist Data ein Anbieter?

Wenn es nennen es einfach in Ihre Homepage in einem ionViewWillLoad(){}, wie folgt aus:

constructor(data : Data) {} 

ionViewWillLoad(){ 
    data.loadData(); 
} 

Und wie diese können Sie es überall speichern, in einer Variablen, Datenbank usw.

Wenn es Daten, die später in der App geändert werden, können Sie stattdessen ionViewWillEnter(){} verwenden.

Hoffe es hilft :)

Verwandte Themen