export class AppComponent {
title = 'Dashboard';
navbarmenu = NAVBAR;
constructor(router:Router){
router.events.subscribe((event: NavigationEvent) => {
if(document.querySelector('.a-active')) document.querySelector('.a-active').classList.remove('a-active');
});
setTimeout(() => {
let testTry = document.querySelector('.submenu li a.is-active');
if(testTry){
let anchor = testTry.parentNode.parentNode.parentNode.children[0];
// anchor is a node and throwing an error.
anchor.classList.add('a-active');
}
}
}
}
错误:'Node'
类型中不存在属性'classList'如果没有评论此setTimeout函数,则无法启动我的服务器。但是当服务器运行并取消注释时。它运行正常但仍然出错。
感谢。任何帮助将不胜感激。
答案 0 :(得分:1)
setTimeout(() => {
let isActive = document.querySelector('.submenu li a.is-active')
if(isActive) isActive.closest('ul').closest('li').children[0].classList.add('a-active')
})
尝试此解决方法!我不知道它为什么会返回节点。在普通的JavaScript中,您的代码应该可行。也许它是打字稿上的一个错误。
填充工具: https://stackoverflow.com/a/24107550/6741739或https://github.com/jonathantneal/closest
如果有效,请通知我。