【发布时间】:2026-01-27 02:45:01
【问题描述】:
我正在处理 Angular 8 项目,并试图添加页面屏幕覆盖,但面临错误类型错误:无法读取 null 的属性“样式”。我添加了按钮,我在其上制作 style.display = 'none' OR 'block'。我的代码在 Local 上正常工作,但在使用“ng build --prod”在 Firebase 上部署后出现错误。 这是我的文件
index.html 文件
<div id="loader-overlay">
<div class="spinner-container">
<div class="loader"></div>
</div>
</div>
</div>
Styles.scss 文件
#loader-overlay-container {
position: absolute;
z-index: 10000000;
top:0;
}
#loader-overlay {
display: none;
height: 100vh;
width: 100vw;
background-color: #333;
opacity: 0.5;
}
shared.service.ts
// To ADD Page loader screen
enablePageLoaderOverlay() {
document.getElementById('loader-overlay').style.display = 'block';
}
// To REMOVE Page loader screen
disablePageLoaderOverlay() {
document.getElementById('loader-overlay').style.display = 'none';
}
booking.component.ts
onBookService(name: string) {
// To ADD Page loader screen
this.sharedService.enablePageLoaderOverlay();
this.sharedCartService.addToCart(this.services[name], "book");
}
【问题讨论】:
-
您是否在
document.getElementById('loader-overlay')中获取元素?尝试调试或控制台。 -
考虑其他不使用
document.getElementById的方法来实现这一点。由于您使用的是角度,您可以简单地使用*ngIf来显示和隐藏加载器
标签: javascript angular scss-lint