我在检查元素属性的 Activity 状态时遇到麻烦。我在下面尝试过,但是即使元素的属性处于 Activity 状态,它也返回false-(存在.c-banner.active)

ngAfterViewInit() {
    const bannerElm = document.getElementById("banner");
    const isActive = bannerElm && bannerElm.getAttribute("class")
      .indexOf("c-banner.active") !== -1;  // returned false
}

最佳答案

您可以使用classList.contains方法检查元素是否具有 Activity 类。

ngAfterViewInit() {
    setTimeout(() => {
        const isActive = bannerElm &&
                         bannerElm.classList.contains('c-banner') &&
                         bannerElm.classList.contains('active');
    }, 1000);
}

[更新]将其包装在setTimeout()中,并且它起作用了!万一其他人陷入了我以前遇到的组件初始化订单问题。

09-18 00:09