【发布时间】:2019-12-23 09:30:38
【问题描述】:
我有一个demo here
这是一个角度应用程序,我正在尝试创建 D3 图表。
图表数据是使用 createDate 函数创建的,创建随机数据和日期。
我希望使用更新按钮更新图表,因此我使用 ngOnChanges 但这不会在页面加载时创建图表。
注释掉的 ngOnInit 在页面加载时加载图表。
ngOnChanges(changes: SimpleChanges) {
if(!changes.data) return;
if(this.hasPreviousData){
this.createData()
this.stack = d3.stack()
.keys(['data_1', 'data_2', 'data_3', 'data_4'])
this.createStack(this.testData);
}else{
this.createData()
this.stack = d3.stack()
.keys(['data_1', 'data_2', 'data_3', 'data_4'])
this.initScales();
this.initSvg();
this.drawAxis();
this.createStack(this.testData);
this.hasPreviousData = true;
}
}
【问题讨论】:
-
我没有看到在附加的 stacklitz 示例中绘制任何图表。你能验证一下吗
-
这是我的问题,如果您注释掉 ngOnChanges 并取消注释 ngOnInit,您将看到图表,但我希望它与 ngOnChanges 一起使用
-
好问题。查看我的回答,如果有帮助,请告诉我。
标签: angular typescript d3.js angular-changedetection ngonchanges