【发布时间】:2021-03-11 16:47:15
【问题描述】:
我正在尝试在 Angular 中获取 DOM 元素,控制台抛出错误:core.js:5882 错误类型错误:无法读取未定义的属性“nativeElement”。如果我转到另一条路线然后返回,我可以在控制台中看到正确的元素,但是如果我在第一次加载页面时抛出错误,我该如何解决这个问题?我试图获取的元素由一个带有 *ngIf 的 div 嵌套,该 div 评估一个异步变量。提前致谢
@ViewChild('inputSearch') el: ElementRef;
ngAfterViewInit(){
console.log(this.el.nativeElement);
}
<div *ngIf="asynchronous variable">
<input type="text" #inputSearch >
</div>
【问题讨论】:
-
您确定您发布的这段代码是您想问的吗?我尝试了最小的角度项目,它似乎工作得很好。 stackblitz.com/edit/…
-
我的猜测是您的条件
<div *ngIf="true">在您的应用程序中有所不同,因此您的input可能在调用ngAfterViewInit时未呈现。 -
在我的代码中 *ngIf 评估一个异步值
-
因此,您的输入有 99% 的可能性尚未呈现。你应该更新你的问题:)
标签: javascript angular