angular - 向下钻取图表动态功能
问题描述
我在打字稿代码中为画布元素获取空值。有一个静态饼图,点击它后,向下钻取到它的子饼图。
在 onclick 功能中,我使用 *ngIf 隐藏父级并显示子级。子图表未显示。
html代码:
<div>
<canvas *ngFor="let chart of charts; let i = index" id="canvas{{i}}" #mycanvas></canvas>
</div>
输入脚本代码:
@ViewChildren("mycanvas") divView: ElementRef;
array = [];
ngAfterViewInit(): void {
this.createCharts(this.array);
}
charts = [];
constructor(private elementRef: ElementRef) { }
ngOnInit() {
this.createChartsData();
}
createChartsData() {
for (var i = 0; i < 3; i++) {
var pie = {
type: 'pie',
data: {
labels: ["Disks", "Mgmt", "Hardware", "FC", "Vols&Pols"],
datasets: [{
backgroundColor: ["#008000", "#008000", "#008000", "#008000", "#008000"],
data: [20, 20, 20, 20, 20]
}]
},
options: {
title: { display: false },
animations: true,
tooltips: { enabled: true },
legend: { display: true }
}
};
this.array.push(pie);
}
}
createCharts(pieData) {
console.log(this.elementRef);
console.log(this.divView+" 777777777dfd");
var ctx: CanvasRenderingContext2D = this.divView.nativeElement.getContext("2d");
for (var j = 0; j < 3; j++) {
/* let htmlRef = this.divView.nativeElement.select(`canvas` + j);
console.log(htmlRef);
var tempChart = new Chart(htmlRef, pieData[j]);
this.charts.push(tempChart); */
}
}
this.divView,即将为空。你能告诉我上面的代码有什么问题吗?
解决方案
在发布的同一天发现问题。抱歉回复晚了。问题是我正在为画布使用图表数组来迭代和创建画布。画布数组使用画布模板变量,有点死锁。所以我总是得到未定义的画布的元素参考。修好了。让我知道是否有人需要其他代码,我可以发布它。
推荐阅读
- reactjs - 我不能在我的 react-typescript 项目中使用 javascript 导入
- lua - 无法将计算出的数字与相同的数字进行比较?
- flask - loginpass OAuth 客户端 - 不正确的行为
- angular - 从 Angular 7 项目中的第三方服务器读取 SAML 响应
- r - 共享相同 y 轴的多个直方图上的密度曲线
- java - maven'spring-cloud-security 依赖在 jhipster 微服务中有什么作用?
- c# - C# 中的 CRC-CCITT 16 位计算
- go - 为什么当我有两个 go-routines 时没有执行循环中的代码
- standards - glmRob 命令给您的“标准错误”是否被认为是可靠的?
- rest - 如何将 text/xml 响应转换为 application/json wso2 EI