2016-06-21 5 views
3

をレンダリングする前に、私はいくつかのグローバル設定を取得します:角度2つの負荷データ私の主なコンポーネントのngOnInitでアプリ

ngOnInit() { 
    this._service1.initGlobalData() 
    this._service2.initGlobalData2() 
} 

これらの2つの呼び出しはその後、私のアプリでは、いくつかの異なる場所で使用されている_service1と_service2を初期化します。 アプリケーションのレンダリングを開始する前に、これらの2つの呼び出しが完了していることを確認したいと思います。

角度2で具体的な方法はありますか?

私の頭に浮かぶ唯一の解決策は、これら2つのinit呼び出しによって返された約束に基づいてスピナーを設定することです。

+0

ちょうどNguyenの答えに追加する:のhttp:またを参照することができます: //stackoverflow.com/questions/37611549/how-to-pass-parameters-rendered-from-backend-to-angular2-bootstrap-method –

+0

https://stackoverflow.com/questions/41619443/how-to-call- an-rest-api-while-bootstrapping-angular-2-app – rmcsharry

答えて

3

答えはあまり一般的ではありませんが、*ngIf="data"でテンプレートをラップするのが最も簡単な方法だと思うと、dataに値が割り当てられた後にのみテンプレートがレンダリングされます。

ルーターは、使用しているバージョンに応じて、約束が解決されるまでコンポーネントの追加を遅らせるライフサイクルコールバックを持つ可能性があります。

2

通常、私のチームとngIfを使用して、準備ができたらコンテンツをレンダリングします。 何かのように:

<div *ngIf="_service1"> 
    // content for _service1 
</div> 
<div *ngIf="_service2"> 
    // content for _service2 
</div> 

関連する問題