In Angular 1.x war UI-Router mein Hauptwerkzeug dafür. Wenn der Router ein Versprechen für "Auflösungs" -Werte zurückgibt, wartet er einfach, bis das Versprechen erfüllt ist, bevor er Anweisungen rendert.
Alternativ kann in Angular 1.x ein Nullobjekt eine Vorlage nicht zum Absturz bringen. Wenn mir also ein vorübergehend unvollständiges Rendern nichts ausmacht, kann ich es einfach $digest
zum Rendern verwenden, nachdem promise.then()
ein ursprünglich leeres Modellobjekt gefüllt wurde.
Wenn möglich, würde ich es vorziehen, mit dem Laden der Ansicht zu warten und die Routennavigation abzubrechen, wenn die Ressource nicht geladen werden kann. Dies erspart mir die Arbeit des "Navigierens". BEARBEITEN: Beachten Sie, dass dies speziell bedeutet, dass diese Frage eine Angular 2-Futures-kompatible oder Best-Practice-Methode dazu anfordert und den "Elvis-Operator" nach Möglichkeit meidet! Daher habe ich diese Antwort nicht ausgewählt.
Keine dieser beiden Methoden funktioniert jedoch in Angular 2.0. Sicherlich ist dafür eine Standardlösung geplant oder verfügbar. Weiß jemand was es ist?
@Component() {
template: '{{cats.captchans.funniest}}'
}
export class CatsComponent {
public cats: CatsModel;
ngOnInit () {
this._http.get('/api/v1/cats').subscribe(response => cats = response.json());
}
}
Die folgende Frage kann dasselbe Problem widerspiegeln: Angular 2-Rendervorlage, nachdem das PROMISE mit Daten geladen wurde . Beachten Sie, dass die Frage keinen Code oder keine akzeptierte Antwort enthält.