2016-12-30 40 views
4

を使用してAngular2のラジオボタンにjqueryプラグインを適用する必要があります。Angular2 - ngAfterViewCheckedは何度も呼び出されます。DOMが完全に読み込まれた後にメソッドを1回呼び出す方法は?

ngAfterViewCheckedに割り当てると、何度も呼び出され、コントロールが複数回リフレッシュされます。

DOMの準備が整った後にjavascriptメソッドを呼び出す代替ソリューションとは何ですか?

+0

解答を見つけました –

答えて

6

ngAfterViewInitを試してください。herehereがあります。

+1

しかし、追跡が必要な変更があり、そのような変更があった後に? 'ngAfterViewInit'は何度も何度も実行されますか? –

+0

はい、いつでも、あなたは何を求めているのかだけでRxJsを使うことができます。変化の流れを見ていたら、必要なものを手に入れたら特定のイベントを起こすでしょう! –

+0

「はい、いつも」 - 私はそれに反して、いつも動かない。あなたが 'ngAfterViewInit'の中に 'console.log()'を置くと無限に記録されないので、実際には常に実行されるわけではありません。 "あなたが求めていることにRxJを使う" - これは意味があり、間違いなく働くでしょう。 –

1

準備中のDOMに依存する場合、ngAfterViewCheckedを使用しています。

import {Component, AfterViewChecked} from '@angular/core'; 

export class NavBar implements AfterViewChecked{ 

    ngAfterViewChecked(){ 
     // jquery code here 
    } 
} 
0

DOMツリーが変更されると、ngAfterViewChecked()が呼び出されます。

DOMツリーが何度も変更された場合、ngAfterViewChecked()メソッドは何度も呼び出されます。

このメソッドにビジネスロジックを配置しないことを推奨します。しかし、新しいメッセージが入ってきたらウインドウを一番下にスクロールするのと同じように、画面のリフレッシュに関連するロジックだけが必要です。

関連する問題