Моя проблема очень специфична. Как я могу добавлять ряды динамически в highcharts, через Angular JS, без кнопки, иначе, без щелчка функции.
Это мой контроллер:
var deserialize = angular.fromJson(data.dataContent); //Específico para el dataContent
for(var i =0; i < deserialize.length; i++){
var url = deserialize[i];
$http.get(url).success(function(data){
var n_scope = [];//NOMBRES PARA LA SERIE
var e_scope = []; //EMPLEADOS
for (var i = 0; i < data.length; i++) {
var nombre_scope = n_scope.push(data[i].nombre);
var empleados_scope = e_scope.push(parseInt(data[i].empleados));
}
var chart = {};
chart.addSeries({
name: n_scope[i],
data: e_scope[i]
});
ЗДЕСЬ ИМЕЕТ ДИАГРАММА:
$scope.renderChart = {
chart: {
type: typeArray[2]
},
title: {
text: titleArray[2]
},
xAxis:{
categories: yAxisTiArray[2],
title: {
enabled: false
},
labels: {
enabled: false
}
},
yAxis:{
title: {
text: yAxisTiArray[2]
}
},
series: chart,
legend: {
enabled: true
},
credits: {
enabled: false
},
lang: {
printChart: 'Imprimir gráfico',
downloadPNG: 'Descargar en PNG',
downloadJPEG: 'Descargar en JPG',
downloadPDF: 'Descargar en PDF',
downloadSVG: 'Descargar en SVG',
contextButtonTitle: 'EXPORTAR'
}
};
Я принимал эту скрипку в качестве примера: http://jsfiddle.net/engemasa/WEm4F/, но мне не нужна функция нажатия кнопки, я хочу, чтобы эта серия динамически добавляла ее в диаграмму
** ПОСТАНОВИЛИ **
У меня есть кнопка, я могу решить эту проблему.
Я создал репозиторий, который объединяет Angular.js, PHP и Highcharts, с Materialize.css, динамически добавляя ряд из внешнего JSON.
ссылка: https://github.com/Nullises/DynamicSeriesHighchartsAngular
Вы почти там, просто положите свой код в блок успеха вашего API (вызов angilejs api). вот пример (как я использовал для построения сериала по изменению данных)
var metricData = $http.get(url);
metricData.success(function(value) {
var data = value.responseData;
var graph = [];
angular.forEach(data.datatimeseries, function(metric) {
graph.push([ metric.timestamp, metric.value ]);
// Assuming that datatimeseries is the timeseiries
});
var chartX = $('#yourDivId').highcharts();
chartX.addSeries({
id : graph_id, // some id
data : graph
});
setYaxisExtremes(chartX); // must use it to reflect added series
});