我在这个帖子中尝试了前两个答案here以及延迟尝试ngAfterViewInit()
并仍然得到ERROR TypeError:无法读取未定义的属性'nativeElement'。这段代码按照我的意愿运行,但我仍然遇到控制台错误。
@ViewChild('companyDropdown') companyDropdown: ElementRef;
onOutsideClick(event:any) {
if(!this.companyDropdown.nativeElement.contains(event.target)){
this.companyResults = null;
}
}
ngAfterViewInit() {
console.log("afterinit");
setTimeout(() => {
console.log(this.companyDropdown.nativeElement.innerText);
}, 5000);
}
在我的构造函数中:
document.addEventListener('click', this.onOutsideClick.bind(this));
HTML:
<ul #companyDropdown class="search-dropdown-ul" *ngIf="companyResults && positionIndex === i">
<li class="search-dropdown-li">{{ companyResult.name }}</li>
</ul>