2017-03-15 11 views
2

私はいくつかの子供を持っているコンポーネントを持っている、彼らはまたいくつかの子供を持つ可能性があります。あなたが見ている内容に依存するので、私はすべての子供が積み込まれるかどうかは予測できません。達成したいのは、コンテンツが読み込まれている間に表示される読み込みインジケータです。しかし、私はすべてのコンポーネントのローディングインジケータを表示する必要はありません。なぜなら、10-15個のローディングインジケータが必要になるからです。すべてのコンポーネントはいつロードされますか?

私の考えは、ルートの親がロードインジケータを表示し、すべての子が初期化されるとロードインジケータが消えることです。しかし、私はどのようにすべての子供たちがロードされていることを確認することができますか? ngAfterViewInit()は私の質問のためのあなたのコメントによると、あなたは別のdiv内のdivとローダーにロードする内容を追加することができますAppComponent

+0

アプリがロードされるまで、アプリケーションの一部のローダーにインジケータが読み込まれていますか? もちろん、あなたのアプリはサーバコールを持っていて、ロードされるまでローダを表示したいのですか? –

+0

このようなもの:https://cloud.githubusercontent.com/assets/928100/19479978/11194b9e-9541-11e6-98bb-4cd3c3313795.gif – tschaka1904

+0

はい。ロード中のアニメーションを削除する前に、私が待っているデータリクエストと、ロードしたいビジュアライゼーションがあります。 – tschaka1904

答えて

3

子供がロードされます。状態に応じて非表示/表示することができます。

<div *ngIf="loaded"> Your content</div> 
<div *ngIf="!loaded"> Loader </div> 

そして、は、クラスでそれを割り当て、状態に応じてそれを変更することができます変数をロードしました。

  • その子はそれに応じて使用すると、データがロードされたときが真として変数をロード割り当てることができ、あなたがAPIからデータを取得し、それを見せている場合は、およそngAfterViewInit()
  • を考慮することができる表示している何か場合

最初に、をロードし、変数をfalseに割り当てます。

また、すべてのコンポーネントにローダーを追加する際の問題を考慮して、ローダーをルートコンポーネントに追加して、サービスを通じて状態(true/false)を変更することができます。次に、コンポーネントを介して状態を変更する必要があります。 また、ローダーまたはコンテンツを表示するかどうかにかかわらず、ルートコンポーネントから変数の値をサブスクライブします。 この部分が役に立ったと思っています。Component Interaction through a service

+0

AppComponentのみ?木の根から来たのですか? – tschaka1904

+0

子コンポーネントがロードされているアプリケーションのどこかのコンポーネントから知りたいのであれば、このコンポーネントの 'ngAfterViewInit()'を使うことができます。アプリケーションのすべてのコンポーネントがロードされたことを知りたければ、アプリケーション全体のすべてのコンポーネントがロードされていることが分かっているので、 'AppComponent'の' ngAfterViewInit() 'を使う必要があります。 –

+0

すべての子供がngAfterViewInit()を起動すると、何が起きるかをもっと必要とします。 – tschaka1904

1

に呼び出されたときに

+0

この回答は役に立ちましたか? @tschakaまたはそれ以上の助けが必要 –

+0

はい。私はそれが正しい方向に進んでいると思う。私はまだそれを少し簡素化する方法を見つけることを試みている。私の最大の問題は、コンポーネントがロードされているかどうかわかりません。もっと正確にするために、私はそれを予測できません。選択されたオブジェクトによっては、セクションが表示されることもあります。 – tschaka1904

+0

"私の最大の問題は、コンポーネントがロードされているかどうかわかりません" しかし、これはどういう問題ですか? –

関連する問題