Ich versuche, in Angular einfache Daten für den Browser anzuzeigen, aber ich möchte die Daten anzeigen, sobald ALLE Daten vom Dienst abgerufen wurden.Laden Sie die Seite noch nicht, bis alle Daten vom Dienst abgerufen wurden
Wie geht das?
Derzeit wird die Seite auch angezeigt, ohne dass die Daten vollständig abgerufen wurden.
Hier ist ein Beispielcode
In test.component.ts file
ngOnInit() {
this._service.getQuestions().subscribe(data => { this.questionCollection = data });
}
In meinem Dienst
getQuestions() {
return this._http.get('assets/questions.json')
.map(res => res.json())
.catch(this.handleError);
}
.html
<div> Other text here...... </div>
<div *ngFor="let col of questionCollection">
<button type="button" class="btn btn-default">{{col.Text}}</button>
</div>
Was möchten Sie tun? Die Route wird nicht geladen oder ein Ladeindikator wird angezeigt oder die Liste wird nicht angezeigt. Es kann auch hilfreich sein, mehr Komponentencode anzuzeigen. – Fiddles
Wenn Sie verhindern möchten, dass die Navigation ausgeführt wird, bis die Daten abgerufen werden, können Sie einen Auth-Guard verwenden, der eine Observable zurückgibt. –