簡體   English   中英

如何知道何時將元素添加到Angular 2上的DOM?

[英]How to know when element has been added to DOM on Angular 2?

我需要操作由*ngIf指令隱藏的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時? 謝謝!

您可以手動運行更改檢測周期以確保更新視圖

constructor(private cdRef: ChangeDetectorRef) {}

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

也可以看看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM