Я реализовал угловую директиву для highcharts следующим образом в соответствии с этим highcharts сообщение в блоге:
angular.module('highCharts')
.directive('ngChart', function () {
return {
restrict: 'E',
template: '<div></div>',
scope: {
options: '='
},
link: function (scope, element) {
var chart = new Highcharts.chart(element[0], scope.options);
$(window).resize(function () {
chart.reflow();
});
}
}
})
Я использую эту директиву в следующем html
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
<div style="width:100%">
<ng-chart options="highchartsNG1"></ng-chart>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
<div style="width:100%">
<ng-chart options="highchartsNG2"></ng-chart>
</div>
</div>
</div>
</div>
Атрибут options
предоставляет директиве объект конфигурации highcharts.
Моя проблема в том, что когда эта директива отображается в html, она не подчиняется сетке начальной загрузки, в которую она включена. Когда диаграммы отображаются, они расширяются за пределы видимой области окна следующим образом, и одна диаграмма перекрывает другую. Просто диаграммы не реагируют. Я поискал в Интернете и попытался установить ширину контейнера на 100%, как в html, а также добавил обработчик событий изменения размера окна. Но ничего из этого не работает. Я пробовал использовать jquery, и он отлично работает. Я ценю, что любой может предоставить мне решение для этого.
Предыдущие ссылки:
Highcharts - проблема с полной шириной диаграммы
highcharts не реагируют после перекомпоновки
http://www.angulartutorial.net/2014/03/responsive-highchart.html