Я пробовал первые два ответа здесь в этой теме, а также пытался ngAfterViewInit()
с задержкой и все еще получал ОШИБКУ 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>