Angular 1.x では、UI-Router がこのための主要なツールでした。「解決」値の promise を返すことにより、ルーターは、promise が完了するのを待ってから、ディレクティブをレンダリングします。
あるいは、Angular 1.x では、null オブジェクトはテンプレートをクラッシュさせません。そのため、一時的に不完全なレンダリングが気にならない場合は、最初は空のモデル オブジェクトを設定$digest
した後にレンダリングするために使用できます。promise.then()
2 つの方法のうち、可能であればビューの読み込みを待ち、リソースを読み込めない場合はルート ナビゲーションをキャンセルしたいと思います。これにより、「ナビゲートしない」という作業が省けます。編集:これは、この質問がこれを行うためにAngular 2の先物互換またはベストプラクティスの方法を要求し、可能であれば「エルビスオペレーター」を避けるように要求することを特に意味することに注意してください! したがって、私はその答えを選択しませんでした。
ただし、これら 2 つの方法はどちらも Angular 2.0 では機能しません。確かに、これには標準的なソリューションが計画されているか、利用可能です。誰がそれが何であるか知っていますか?
@Component() {
template: '{{cats.captchans.funniest}}'
}
export class CatsComponent {
public cats: CatsModel;
ngOnInit () {
this._http.get('/api/v1/cats').subscribe(response => cats = response.json());
}
}
次の質問は同じ問題を反映している可能性があります: Angular 2 render template after the PROMISE with data is loaded . 質問にはコードや受け入れられた回答が含まれていないことに注意してください。