2017-05-08 4 views
1

私は*ngIfディレクティブで隠されているDOM要素を操作する必要があります。Angular 2のDOMに要素が追加されたときを知る方法は?

<div *ngIf="myBoolean"> 
    <canvas id="myElement"></canvas> 
</div> 

ボタンをクリックした後、私は次のメソッドを実行します。

showMyElement(){ 
    this.myBoolean = true; //This shows the div containing myElement 
    console.log(document.getElementById('myElement')); //This gives me null 
} 

をしかし、私は上のクリックしてmyElementを取得する場合それが表示された後の別のボタンは、私はnullを取得しません。私は初めてそれを得るとき、DOMにまだ追加されていないと思います。 myElementがDOMに追加されたことをどのように知ることができますか? (ngModelChange)のようなものがありますか?それはDOMに追加されたときですか?ありがとう!

答えて

3

は手動

constructor(private cdRef: ChangeDetectorRef) {} 

showMyElement(){ 
    this.myBoolean = true; 
    this.cdRef.detectChanges(); // redraw view 
    console.log(document.getElementById('myElement')); //This gives me null 
} 

も魅力のように働いた

+0

を参照してくださいあなたのビューが更新されていることを確認するために、変更検出サイクルを実行することができます。どうもありがとう! –

関連する問題