2017-06-12 17 views
2

私のアプリケーションでWijmoグリッドを使用しています。しかし、グリッドは最初は画面に正しく表示されません。 最初の列はチェックボックスで、このメソッドはthis.flex.refreshを呼び出します。これは実際にグリッドをリフレッシュし、おそらく再レンダリングします。Lifecycle Hooks in Angular 2

最初にページが読み込まれると、チェックボックス付きのセルが1つだけ表示されます。それをクリックすると、フルグリッドが表示されます。 コールからフレックスリフレッシュメソッドを削除すると、すべてが表示されます。

実際のグリッドがレンダリングされる前に、グリッドのCSSがロードされていないと仮定します。 (それは私の角のCLI JSONでそれを持っているはずですが)。

私がやっていることは、ページが完全に読み込まれたときにリフレッシュすることですが、信頼できるフックを見つけることができません。

flex変数は、すべてが完了するとその値が割り当てられます(コンストラクターまたはngInitでは定義されていません)。

私は、それが存在する信頼できるフックを見つけることを試みています。

ngAfterViewInit、ngAfterContentInitを試しましたが、そこには定義されていません。

私は

ngAfterViewInit() { 
    setTimeout(() => { 
     this.flex.refresh(); 
    }, 500); 
    } 

を行う場合、それは時々動作し、時にはません。 setTimeoutで私はflexの変数をほとんどの時間を見つけることができますし、時々そうではありません。これは少し信頼できないようです。 私はメソッドを呼び出すことができるフックがあるのだろうかと思っていました。ページが完全に初期化された後に呼び出されるフック。 AfterViewInit & afterContentInitは、初期化が開始され、完了していないと呼び出されたようです。

+0

どのようにページと角アプリケーションにあなたの 'Wijmo'グリッドを追加します: しかしuがこれを見てクローズする必要がありますか? –

答えて

0

ngAfterViewChecked()で同じ番号を呼び出すことができます。ドキュメントの状態はこれがときに呼び出されたよう:

Respond after Angular checks the component's views and child views. 

Called after the ngAfterViewInit and every subsequent ngAfterContentChecked(). 
+0

私は、その後、私はerrors.Iの多くを得ることをすべて未定義 ERRORの例外TypeError後this.flex すべての後に慰めていない場合:未定義またはnull参照 エラーコンテキストのプロパティ「リフレッシュ」を取得できません[オブジェクトのオブジェクト] After Everything [オブジェクトオブジェクト] エラー:ExpressionChangedAfterItHasBeenCheckedError:式がチェックされた後に変更されました。以前の値: 'undefined'現在の値: 'undefined'。親とその子が汚れていることが確認された後にビューが作成されたようです。変更検出フックで作成されていますか? –

0

ドキュメントに基づいて、最後のフックがngAfterViewCheckedです。

Angular throws an error if the hook updates the component's data-bound comment property immediately (try it!). The LoggerService.tick_then() postpones the log update for one turn of the browser's JavaScript cycle and that's just long enough.

wait a tick

+0

私はそれをすれば、私はエラーのalotを取得します。私はすべての後にconsolingです。ExpressionChangedAfterItHasBeenCheckedError:それは確認した後、式が変更されたすべてのもの[オブジェクトのオブジェクト] ERRORエラーの後 エラーコンテキスト[オブジェクトのオブジェクト] 未定義またはnull参照のプロパティを取得できません「リフレッシュ」:すべて未定義 ERRORの例外TypeError後 を曲げます。以前の値: 'undefined'現在の値: 'undefined'。親とその子が汚れていることが確認された後にビューが作成されたようです。変更検出フックで作成されていますか? –

+0

このエラーはスタックにfnを登録して、たとえばページを変更したときに有効範囲が変更されました – Daredzik

+0

"変更検出フックで作成されましたか?"これを使用してください: 'changeDetectionRef.detectChanges()'ここでは、ドキュメントです:https://angular.io/docs/ts/latest/api/core/index/ChangeDetectorRef-class.html – Daredzik