在Angular 5中的* ngIf之后等待元素渲染?

时间:2018-03-28 21:50:23

标签: javascript angular typescript frontend

有没有办法等待HTML元素因为*ngIf而启用后才能呈现?

StackBlitz显示我的意思。

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

我只是希望它调用特定元素,所以我不能只使用ngAfterViewChecked()。

2 个答案:

答案 0 :(得分:1)

您可以先将html渲染设置为setTimeout

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

答案 1 :(得分:0)

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

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