Привет всем разработчикам :-)Ajax звонки в highchart.js
Я хочу задать вопрос о создании Ajax вызовов в библиотеке highchart.js
У меня есть ценности, которые я возвращаю через Ajax, основанный на информации, которую я предоставляю фоновому контенту (проект MVC .NET), а затем я хочу отобразить новую диаграмму в каждом div с помощью класса gainChart (я добавляю идентификаторы для других целей, поэтому не делайте беспокоите их :-))
var iteratorJs = 0;
$(".gainChart").each(function (i) {
$(this).attr('id', "gainChart" + (i + 1));
var chart = new Highcharts.Chart({
chart: {
renderTo: this,
type: 'line',
margin: 0,
backgroundColor: 'rgba(255,255,255,0.3)'
},
colors: ['#2E5430'],
xAxis: {
lineWidth: 0,
minorGridLineWidth: 0,
lineColor: 'green',
//type: 'datetime',
labels: {
enabled: false
},
categories: [
$.ajax({
type: "POST",
url: "forex-copy-points-days",
data: { page: 0, perPage: 5, iterator: iteratorJs },
dataType: 'json',
async: false,
success: function (data) {
var daysArr = data.days;
JSON.stringify(daysArr);
categories = daysArr;
console.log(daysArr);
}
})
]
},
tooltip: {
formatter: function() {
var text = '';
text = this.y + '$';
return text;
}
},
credits: { enabled: false },
title: { text: null },
legend: {
enabled: false
},
plotOptions: {
series: {
stacking: 'normal',
pointWidth: 10
}
},
series: [{
name: 'Balance',
showInLegend: true,
legendMarkerColor: "green",
legendText: "Profit for account",
data: [
$.ajax({
type: "POST",
url: "forex-copy-points-balance",
data: { page: 0, perPage: 5, iterator: iteratorJs },
dataType: 'json',
async: false,
success: function (balances) {
var balArr = balances.balances;
JSON.stringify(balArr);
data = balArr;
console.log(balArr);
}
})
]
}],
exporting: {
enabled: false
},
responsive: {
rules: [{
condition: {
maxWidth: 600
},
chartOptions: {
legend: {
enabled: false
}
}
}]
}
});
iteratorJs++;
});
Возвращаемые данные, как и должно быть (differen t строк), но ничего не отображается - только фон диаграммы. Может кто-нибудь дать мне понять, как это решить и что изменить, чтобы решить мою проблему.
Заранее благодарен!
Спасибо, Métoule своего ответа. У меня есть один вопрос об этом - должен ли я удалить var chart = новый код Highcharts.Chart в начале скрипта, так как я буду рендерить при обратном вызове ajax? Спасибо и хороший день всем. :) – Nikolay
Я действительно сохранил его, но он был перемещен в тело обратного вызова успеха. Честно говоря, я предлагаю вам попробовать познакомиться с jQuery и AJAX, прежде чем пытаться рисовать график. Например, вы можете использовать 'console.log()' для отображения того, что вы получаете от вызова ajax. –
Привет, Еще раз спасибо за быстрый ответ. Как вы можете видеть в своем первом комментарии, я использую console.log() для отображения результатов вызова ajax. В любом случае, я попробую ваше предложение и напишу отзыв. :-) – Nikolay