Как сделать так, чтобы кнопки выбора диапазона Highstock загружали новые данные? - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь создать веб-сайт, используя django, отображая графики highstock (highcharts) для разных диапазонов данных.Я продвинутый пользователь Python, хотя я начинающий с JavaScript.

Я хочу, чтобы кнопки диапазонов данных (1d, 1w, 1m, все) каждый раз вызывали разные URL при нажатии.Я поместил код ниже, а также документацию для кнопок rangeSelector.В примере кода я попытался несколько вариантов вещей, которые я нашел в Интернете, но ни одна из них не работает.Любая помощь высоко ценится!

rangeSelector: {
        allButtonsEnabled: true,
        buttons: [{
        type: 'day',
                count: 1,
                text: 'Day',
                events: {
                click: function () {
                return "https://0.0.0.0/daydata";
                }
                },
                dataGrouping: {
                forced: true,
                        units: [['day', [1]]]
                }
        }, {
        type: 'week',
                count: 1,
                text: 'Week',
                events: {
                click: function () {
                return "https://0.0.0.0/weekdata";
                }
                },
        },
        {
        type: 'month',
                count: 1,
                text: 'Month',
                click: function () {
                return "https://0.0.0.0/monthdata";
                },
                dataGrouping: {
                forced: true,
                        units: [['month', [1]]]
                }
        }, {
        type: 'all',
                text: 'All',
                events: {
                click: function (event) {
                return "https://0.0.0.0/alldata";
                }
                },
                dataGrouping: {
                forced: true,
                        units: [['month', [24]]]
                }
        }],
},

https://api.highcharts.com/highstock/rangeSelector.buttons https://api.highcharts.com/highstock/rangeSelector.buttons.events.click

Спасибо!

1 Ответ

0 голосов
/ 26 июня 2018

Вы можете использовать jQuery в events.click для извлечения данных из внешнего API.Затем обновите диаграмму новыми данными и параметрами группировки данных.

  events: {
    click: function() {

      $.getJSON('https://cdn.rawgit.com/highcharts/highcharts/057b672172ccc6c08fe7dbb27fc17ebca3f5b770/samples/data/new-intraday.json',
        function(data) {
          chart.series[0].update({
            data,
            dataGrouping: {
              forced: true,
              units: [
                ['week', [1]]
              ]
            }
          });
        });

      return false; // prevent further actions
    }
  }

Демонстрационная версия: http://jsfiddle.net/BlackLabel/2mb4fypn/

...