angular - 在 mat-card-content 上找不到 elementById
问题描述
在页面上有一个画布通过id找到它是没有问题的:
<canvas id="chart" width="400" height="400"></canvas>
document.getElementById("chart")
一切都很好。但如果我把它包在一张垫子里,我就再也找不到了:
<mat-card>
<mat-card-title>My title</mat-card-title>
<mat-card-subtitle>My sub title</mat-card-subtitle>
<mat-card-content>
<canvas id="chart" width="400" height="400"></canvas>
</mat-card-content>
</mat-card>
结果是:
document.getElementById("chart")
null
知道为什么吗?
解决方案
可能当您尝试获取它时,它不在页面上。组件是 javascript 对象。所以你需要在加载后获取元素。我不推荐以下解决方案。您应该在组件初始化时执行此操作。
试试这个来验证我的假设:
setTimeout(() => {
console.log(document.getElementById("chart"))
}, 5000); // 5 seconds to make sure
推荐阅读
- vba - 访问表单文本框的验证规则
- regex - wp-cli search-replace 使用正则表达式时不替换
- r - R - 提取名称为 X 的列表的所有元素
- ios - URLSessionConfiguration 的 httpMaximumConnectionsPerHost 在网络故障的情况下不起作用
- html - 当来自 api 的响应不完全有角度时,如何跳过 ngFor?
- java - ApiResponses 混淆 Swagger-UI 输出找不到“类型”
- javascript - jQuery 用于根据下拉列表的更改值在 asp 中继器中设置背景颜色
- python - 我可以使用 ktrain 库从检查点恢复训练吗?
- python - 使用 to_sql 将 Pandas 数据帧中的数据批量插入 Sybase 数据库表失败
- java - 在 Java 中显示 3D 数组中的值