Я использую Chartjs для рисования диаграмм в своем ионном приложении. Все работает нормально, за исключением того, что он отображает последний в цикле. Допустим, есть объекты [0,1,2], он отображает только 2, ну, используя ng-repeat
, он повторяется 3 раза, так как в массиве 3 объекта. плохо прикрепляю мой взгляд и журнал консолей.
Консоль:
Просмотр приложения:
скрипт:
for(i in blogs.data) {
if(blogs.data[i].post_type_id == 3) {
var chartdraw = JSON.parse(blogs.data[i].chart.data);
if(blogs.data[i].chart.chart_type_id == 1){
$scope.pieData = chartdraw;
$log.info('pieData:',$scope.pieData);
}
else if(blogs.data[i].chart.chart_type_id == 2){
$scope.barData = chartdraw;
$log.info('barData:',$scope.barData);
}
else if(blogs.data[i].chart.chart_type_id == 3){
$scope.lineData = chartdraw;
$log.info('lineData:',$scope.lineData);
}
else if(blogs.data[i].chart.chart_type_id == 4){
$scope.numberData = chartdraw;
$log.info('numberData:',$scope.numberData);
}
}
}
просмотр:
<div class="card image" ng-if="blog.post_type_id == 3" >
<a href="#/app/home/{{blog.id}}">
<div class="thumb">
<div>
<canvas piechart options="chartOptions" data="pieData" width="150" height="150" ng-if="blog.chart.chart_type_id == 1">
</canvas>
<canvas barchart options="chartOptions" data="barData" width="150" height="150" ng-if="blog.chart.chart_type_id == 2">
</canvas>
<canvas linechart options="chartOptions" data="lineData" width="150" height="150" ng-if="blog.chart.chart_type_id == 3">
</canvas>
<div ng-if="blog.chart.chart_type_id == 4">
<p ng-bind-html="numberData.details[0].value"></p>
<p ng-bind-html="numberData.details[0].label"></p>
</div>
</div>
<div class="text-center cat-icon">
<span class="icon-wrapper">
<i class="icon ion-stats-bars" style="position:relative;"></i>
</span>
</div>
</div>
<h4 class="title">{{blog.title}}</h4>
<p class="details"><i class="icon ion-calendar"></i> {{blog.created_at}}</p>
</a>
</div>