首页 > 解决方案 > 在 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

知道为什么吗?

标签: angulardomangular-materialchart.js

解决方案


可能当您尝试获取它时,它不在页面上。组件是 javascript 对象。所以你需要在加载后获取元素。我不推荐以下解决方案。您应该在组件初始化时执行此操作。

试试这个来验证我的假设:

setTimeout(() => {  
    console.log(document.getElementById("chart"))  
}, 5000); // 5 seconds to make sure  

推荐阅读