我有一个创建d3图表的组件。它会根据div
在id
元素中创建图表,因此我在组件启动过程中设置id
的{{1}},然后调用创建图表的私有函数:
HTML:
div
JavaScript:
<div class="widget">
<div class="header">Progress Status</div>
<div id="{{chartId}}" class="gauge-chart-container"></div>
</div>
这里的问题是函数public ngOnInit(){
this.chartId = 'chart-'+uuid();
this.createGaugeChart(this.chartId);
}
在div元素被赋值createGaugeChart
之前运行,所以当我添加一个id
函数时它会起作用:
timeout
我当然不想添加public ngOnInit(){
this.chartId = 'chart-'+uuid();
setTimeout(() => {
this.createGaugeChart(this.chartId);
},1000);
}
,所以有没有办法在调用任何函数之前等待HTML使用范围变量进行渲染?或者我可能在错误的位置调用timeout
函数?