【发布时间】:2019-11-12 16:24:06
【问题描述】:
在我的 Angular 应用程序版本从 angular 7 升级到 angular 8 之后 我遇到了这样的行的复杂问题
export class followupComponent implements OnInit {
@ViewChild('message') messageElement: ElementRef;
constructor(){}
...
}
我读到新定义需要static参数
并更改代码
@ViewChild('message', { static: true })) messageElement: ElementRef;
我认为问题已经解决了。
但不,我接受运行时错误:
无法读取未定义的属性“nativeElement”
与此代码相关
HTML:
<div class="message">
<div class="action-buttons">
<img src="{{imgPath + '_Edit_Hover.png'}}" (click)="OnEdit(Followup)">
</div>
<textarea matInput #message [ngModel]="Followup.Message"></textarea>
</div>
TS:
OnEdit(followup: Followup) {
setTimeout(() => this.messageElement.nativeElement.focus());
}
角度8中ElementRef的正确定义是什么,
或者 - 如何解决这个问题?
【问题讨论】:
-
你在哪里执行了这行
setTimeout(() => this.myElement.nativeElement.focus());。请与我们分享您的完整代码。 -
尚未开始使用 Angular 8,但在视图初始化后元素可用 [AfterViewInit 钩子]
-
你在构造函数中初始化nativeElement了吗?
-
Bear Nithi、faizan 和 varundhariyal,我提供额外的代码。
标签: angular viewchild angular8