Случайное число на Highcharts + AngularJS

0

Я пытаюсь создать диаграмму, которая генерирует случайные числа, и она обновляет максимальное значение после нажатия на кнопку.

Это мой контроллер:

$scope.max = 1;

$scope.randomNumber = function(max,min) {
  var arr = [];
  for (var i = 0; i < 60; i++) {
    arr.push(Math.floor(Math.random()*(max-min+1)+min));
  }
  return arr;
}

  $('#chart').highcharts({
    series: [{
      data: (function () {
        var data = [];

        for (var i = 0; i < 60; i++) {
          data.push({
            x: i,
            y: $scope.randomNumber($scope.max,0)[0]
          });
        }
        return data;
      }())
    }]
  });

И это HTML, который должен обновлять максимальное значение:

<button ng-click="max = 10">10</button>
<button ng-click="max = 100">100</button>
<button ng-click="max = 1000">1000</button>
<button ng-click="max = 10000">10000</button>

Однако он не обновляет максимальное значение. Какие-нибудь советы?

Здесь Plunker: http://plnkr.co/edit/N0UfORtSjYW5jaPGojXH?p=preview

  • 0
    Я думаю, что ваш массив данных неверен, «X» это число, а Y это массив. Я изменил $scope.randomNumber($scope.max,0) на $scope.randomNumber($scope.max,0)[0] и была сгенерирована диаграмма
  • 0
    Спасибо, Ронни. Это действительно произвело диаграмму. Однако, у меня все еще есть другая проблема: это не обновляет max значение, когда я нажимаю на кнопки.
Теги:
highcharts

1 ответ

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

При изменении максимального значения необходимо перерисовать диаграмму.

См. Plnkr. Я смотрю максимальное значение, и когда max changes вызывает функцию draw.

  $scope.draw = function() {
    $('#chart').highcharts({
      series: [{
        data: (function() {
          var data = [];

          for (var i = 0; i < 60; i++) {
            data.push({
              x: i,
              y: $scope.randomNumber($scope.max, 0)[0]
            });
          }
          return data;
        }())
      }]
    });
  }

  $scope.draw();

  $scope.$watch('max', function() {
    $scope.draw();
  });

http://plnkr.co/edit/Cp0V46z7UgnRiQsKNrtl?p=preview

  • 0
    Конечно! Спасибо! знак равно

Ещё вопросы

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