рендеринг динамического числа графиков старших не работает

0

я пытаюсь это

$scope.chartsArray = [];
for (var j = 0; j <= i; j++) { //i its the amount of charts to display
    document.getElementById("charts").innerHTML += '<div class="col-md-6" id="chart-' + j + '"></div>';
    $scope.tmp = new Highcharts.Chart({
        series: [1,2,3,4],
        chart: { type: 'column', renderTo: 'chart-' + j },
    });
    $scope.chartsArray.push($scope.tmp);
}

на этом div

<div id="charts" class="col-md-12" style="margin-top:50px">  </div>

Но когда я загружаю диаграммы, только последний загруженный работает правильно, другие диаграммы не отображают серию, и взаимодействия не отвечают (например, экспортируют или скрывают серию). Почему это? вы, ребята, знаете какой-либо другой способ сделать это?

  • 0
    Попробуйте изменить $scope.tmp на var tmp чтобы $scope.tmp каждый из графиков и создать для них каждый экземпляр отдельно. На данный момент вы нажимаете ссылку на объект несколько раз, одновременно меняя объект.
  • 0
    Это не то, как это сделать вообще. Позвольте angular построить дом на основе вашей модели данных. Если этот код работает в контроллере ... шаблон может еще не существовать
Показать ещё 1 комментарий
Теги:
highcharts

1 ответ

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

Это плохая практика доступа и изменения DOM от вашего углового контроллера. Вместо этого используйте директиву. Вот один для высокопроизводительных https://github.com/pablojim/highcharts-ng

Ещё вопросы

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