2016-06-27 10 views
0

ページが読み込まれている間に、ページ全体に負荷インジケータ(スピンナ)を設定するディレクティブを作成しました。私のディレクティブは引数を1つだけありますスピナーを表示するかしない:<div class="app-container" [busy]=!pageLoaded>Angular2のページの変更時に負荷インジケータを設定する

私のアプリのコンポーネントでは、私はコンストラクタで次のことを行っている:

this.pageLoaded = false 
    router.subscribe((routeName: String) => { 
     /* Other stuff */ 
     this.pageLoaded= true 
    }) 

このrouter.subscribeは毎回呼び出されますルータが(1つのページから別のインスタンスに)変更されています。唯一の問題は、私のpageLoadedが真の価値を保持するということです。 busy指示文をトリガーせずに、どのようにfalseに戻すことができますか?

+0

[表示ローディング画面角度2における経路間をナビゲート(http://stackoverflow.com/questions/37069609/show-loading-screen-when-navigating-between-routes-in-angular -2/37070282#37070282)がお手伝いします。 –

答えて

0

私が通常行っていること:ルートの変更はかなり速いです。私は、ルートの解決策(データフェッチ)をしたいと思っています。したがって、この場合は、リクエストの開始時にローカルカウンタを増加させ、リクエストが終了/失敗したときにローカルカウンタを増加させるHTTPハンドラを作成しました。そこにカウンタはgt 0ショーローダーです。

特別なケースでは、ローダーを表示したくない場合は、通常、これを要求オブジェクトの構成として与え、このセットに基づいてカウンタを使用するかどうかを決定します。

よろしく

関連する問題