Мне нужно создать динамическое количество кольцевых диаграмм, используя ChartJS на моей странице.Я получил это работает, но со статическими данными (2 диаграммы и данные, используемые ими).
Разметка:
<div class="row" id="divChartGroup">
<div class="col-md-3 col-lg-3">
<div class="panel panel-default">
<div class="panel-body">
<button type="button" class="close" data-target="#copyright-wrap" data-dismiss="alert" ng-click="ConfirmRemove('Guage1')"> <span aria-hidden="true">×</span><span class="sr-only" style="color:#000 !important">Close</span> </button>
<h4>Gauge1</h4>
<canvas id="CanvasGauge1"></canvas>
</div>
</div>
</div>
<div class="col-md-3 col-lg-3">
<div class="panel panel-default">
<div class="panel-body">
<button type="button" class="close" data-target="#copyright-wrap" data-dismiss="alert" ng-click="ConfirmRemove('Guage2')"> <span aria-hidden="true">×</span><span class="sr-only" style="color:#000 !important">Close</span> </button>
<h4>Gauge2</h4>
<canvas id="CanvasGauge2"></canvas>
</div>
</div>
</div>
<!-- Can be many more gauge charts here -->
</div>
Сейчас все статично.Мне нужно преобразовать его в динамический.Внутри "divChartGroup" может быть N количест-во калибровочных диаграмм.Я использую AngularJs для этого.Вот код, который я использую для получения данных с использованием AngularJS:
APIService.GetChartData()
.then(function (response) {
var data = response.data.result;
//Gets data in the format provided elow
//Need to write logic to generate charts dynamically here.
}
JSON-ответ (данные) имеет вид:
"result": [
{
"chartName": "Gauge1",
"score": 87
},
{
"chartName": "Gauge2",
"score": 87
},
{
"chartName": "Gauge3",
"score": 89
},
{
"chartName": "Gauge4",
"score": 88
},
.
.
.
]
Код длясоздать диаграмму:
function DrawGauge(element, value) {
var _config = {
type: 'doughnut',
data: {
labels: [
"",
""
],
datasets: [{
data: [value, 100 - value],
backgroundColor: [
'#3d9447',
'#a7adba'
],
hoverBackgroundColor: [
'#3d9447',
'#a7adba'
]
}]
},
options: {
cutoutPercentage: 80,
legend: {
display: false
},
tooltips: {
enabled: true
},
elements: {
center: {
text: value.toFixed(2),
color: '#000000',
fontStyle: 'Arial',
sidePadding: 20,
fontSize: 50,
textAlign: 'center'
}
}
}
};
new Chart(element, _config);
}
Как создать нужный HTML-код с привязкой событий к кнопкам и динамическим созданием диаграмм?