Как динамически добавлять серии в Highcharts без кнопки? (УГЛОВОЙ JS)

0

Моя проблема очень специфична. Как я могу добавлять ряды динамически в 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/, но мне не нужна функция нажатия кнопки, я хочу, чтобы эта серия динамически добавляла ее в диаграмму

  • 0
    Когда вы хотите, чтобы данные изменились? Время основано?
  • 0
    Мои данные загружаются из файла JSON. Каждый ключ "nombre" (испанское слово для имени) является именем серии, а каждый ключ "empleados" (испанское слово для сотрудников) является данными серии.
Показать ещё 1 комментарий
Теги:
highcharts

2 ответа

1
Лучший ответ

** ПОСТАНОВИЛИ **

У меня есть кнопка, я могу решить эту проблему.

Я создал репозиторий, который объединяет Angular.js, PHP и Highcharts, с Materialize.css, динамически добавляя ряд из внешнего JSON.

ссылка: https://github.com/Nullises/DynamicSeriesHighchartsAngular

1

Вы почти там, просто положите свой код в блок успеха вашего 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
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню