【问题标题】:Wait for element to render after an *ngIf in Angular 5?在 Angular 5 中的 *ngIf 之后等待元素渲染?
【发布时间】:2018-09-07 17:50:33
【问题描述】:

由于*ngIf,有没有办法等待 HTML 元素在启用后呈现?

StackBlitz 表达我的意思。

如果我只是在一个元素上切换*ngIf 的条件,我将无法执行document.getElementById('someid')。在元素被渲染后是否有回调/方法来调用代码?

我只想在特定元素上调用它,所以我不能只使用 ngAfterViewChecked()。

【问题讨论】:

  • 你试过 [hidden] ,

标签: javascript angular typescript frontend


【解决方案1】:

检查这个闪电战:https://angular-hwpfwx-xvmbiv.stackblitz.io 打开控制台查看对 div 的引用。

它使用ViewChild 来检测相同的div 使用ngIf

【讨论】:

    【解决方案2】:

    您可以先将函数设置为 setTimeout 进行 html 渲染

    if(this.render) {
      setTimeout( () => document.getElementById('someid').focus());
    }
    

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 1970-01-01
      • 2018-09-19
      • 2021-11-28
      • 2021-04-27
      • 2017-09-01
      • 1970-01-01
      • 2018-07-16
      • 2017-04-17
      相关资源
      最近更新 更多