2016-05-22 9 views
1

他の子コンポーネントで構成されているコンポーネントがデータバインディングやすべてを含むロードを完全に終了したことを知ることができません。たとえば、ParentComponentのテンプレートは次のとおりです。角2コンポーネントが完全にロードされたとき

<div> 
    <child-one> 
     {{textOne}} 
    </child-one> 
    <child-two> 
     {{textTwo}} 
    </child-two> 
</div> 

いずれの提案も高く評価されています。

答えて

1

ngAfterViewInit() {}が呼び出された場合、またはコンテンツが(<ng-content>)に合格した場合、ngAfterContentInit()の後に呼び出されました。

+0

私はあなたが意味するものを理解できませんでした。 – lbrahim

+1

私はタイプミスがありました。多分、これは苦しみを引き起こしました。 'ngAfterViewInit()'は、ビューの初期化が完了した後に呼び出されます。コンポーネントはこの状態で完全にロードされ、初期化されます。コンポーネントに渡された子も完全にロードされている場合は、代わりに 'ngAfterContentInit()'を使用してください。 –

0

これは間違っています。ビューが初期化されているときにngAfterViewInitが起動されます... ブレークポイントを挿入すると表示されます。 ビューが実際に完全に読み込まれたときを知るフックは、角度2では実際には見当たりません! 回避策として、そのようなものを試すことができます:

ngAfterViewInit() { 
    console.log('View is being initialized'); 
    console.log(this.el.nativeElement.offsetHeight); 

    setTimeout(() => { 
     console.log('View is fully loaded'); 
     console.log(this.el.nativeElement.offsetHeight); 
    }, 0); 
} 
関連する問題