@
zhihaofans 有问题的 就是问题比较啰嗦不好描述
这里
<div class="chart" v-for="(chart,index) in charts">
<div class="header">
<div class="title">{{chart.title}}</div>
<div class="subtitle">{{chart.intro}}</div>
</div>
<div class="content">
<div class="bar" :id="'chart-'+ index"></div>
</div>
</div>
用 v-for 从 API 循环读入数据, <div class="bar" :id="'chart-'+ index"></div>这句渲染 charts.length 个 div ,用 echarts 来绘制图表,因为每个图表的类型( bar 、或者 pie )和数据都不一样(都是循环从 API 读入),实例化图表的时候用了一个 for 循环:
showChart(){
for (var i = 0; i < this.charts.length; i++) {
if ( type===pie )
{
var myChart = echarts.init(document.getElementById("chart-" + i));
.......
} else if(type === bar)
{
var myChart = echarts.init(document.getElementById("chart-" + i));
}
.......
}
然后发现,图表画不出来,应为在执行图表实例化的时候, DOM 的渲染还没有结束,于是就用了一个定时器,但是遇到数据库比较卡的时候就歇菜啦!有没有好的方法呀,怎样才能确定 v-for 循环渲染已经结束, v-for 中所有的子元素已经渲染完成啦