错误TypeError:无法在HTMLDivElement.eval中读取null的属性“style”

时间:2018-04-17 00:50:04

标签: javascript angular typescript

我知道有类似的问题,例如this one,但他们没有解决我的问题

在我的角度应用程序中,我尝试在mouseenter上执行某些操作,因此我已将此代码设置为...

component.ts     menu:AppMenu = null;

ngOnInit() {
    this.menu = this._appNavigationService.getMenu();
    const menu = <HTMLElement>document.querySelector('#m_ver_menu');
    const subheading = <HTMLElement>document.querySelector('#sub-menu');
    menu.addEventListener('mouseenter', () => {
        subheading.style.height = '100%';
    });
}

component.html

<div id="sub-menu" *ngIf="menuItem.items.length">...</div>

component.scss

#sub-menu{
   height: 0;
   overflow: hidden;
}

但由于某种原因,当我mouseenter menu时,我一直收到此错误ERROR TypeError: Cannot read property 'style' of null at HTMLDivElement.eval,因此它找到了#menu元素,所以我不确定为什么它找不到其他元素我选择了..我认为一定是因为*ngIf没有被它试图找到元素的时候触发,有没有办法等待* ngIf通过然后'得到'我尝试过这个元素。

ngOnInit() {
    this.menu = this._appNavigationService.getMenu();
    // hover effects
    const menu = <HTMLElement>document.querySelector('#m_ver_menu');
    if (this.menu.items.length) {
        const subheading = <HTMLElement>document.querySelector('#sub-menu');
        menu.addEventListener('mouseenter', () => {
            subheading.style.height = '100%';
        });
    }
}

但这也不起作用,我得到同样的错误

我有什么遗失吗?

任何帮助将不胜感激

由于

0 个答案:

没有答案