【问题标题】:How to know when element has been added to DOM on Angular 2?如何知道元素何时在 Angular 2 上添加到 DOM?
【发布时间】:2017-10-06 13:23:56
【问题描述】:

我需要操作一个被 *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 时?谢谢!

【问题讨论】:

    标签: javascript angular dom


    【解决方案1】:

    您可以手动运行更改检测周期以确保您的视图已更新

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

    另见

    【讨论】:

    • 工作就像一个魅力。非常感谢!
    猜你喜欢
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2014-03-14
    • 2016-12-29
    • 2012-06-07
    • 1970-01-01
    • 2016-12-21
    相关资源
    最近更新 更多