Sto cercando di integrare Highharts usando la direttiva angolare highcharts-ng all'interno di Angular-grister (una direttiva angolare dashboard/widget).Integrazione di Highcharts in angular-gridster
Ecco il mio HTML:
<div ng-controller="myCtrl">
<div gridster="gridsterOptions">
<ul>
<li gridster-item="item" ng-repeat="item in standardItems">
<highchart id="chart1" config="chartConfig" class="chart"></highchart>
</li>
</ul>
</div>
</div>
mio CSS styling:
body {
color: #858584;
background-color: #e0e0e0;
}
.gridster .gridster-item {
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
color: #004756;
background: #ffffff;
padding: 10px;
}
.chart {
border:1px #000 solid;
}
E la mia app angolare:
var myApp = angular.module('myApp', ['gridster', 'highcharts-ng']);
myApp.controller('myCtrl', function ($scope) {
$scope.gridsterOptions = {
margins: [20, 20],
columns: 4,
rowHeight: 300,
pushing: true,
floating: true,
swapping: true,
resizable: {
enabled: true
},
draggable: {
enabled: true
}
};
$scope.standardItems = [{
sizeX: 2,
sizeY: 1
}, {
sizeX: 2,
sizeY: 1
}];
$scope.chartConfig = {
options: {
chart: {
type: 'bar'
}
},
series: [{
data: [10, 15]
}],
title: {
text: 'Hello'
},
loading: false
};
});
Essa si traduce in qualcosa di simile con i widget nella cruscotto di rotazione:
ci sono due questioni riguardanti il layout reattivo:
- L'altezza dei componenti Highchart è sempre 400 px. Si trovano all'interno del widget dashboard e dovrebbero avere la stessa altezza del widget. Attualmente sono più alti del loro widget di dashboard e il loro contenuto è straripante.
- Durante il rendering, i componenti Highcharts sono più larghi del loro contenitore. Se ridimensiono la finestra, vengono ridipinti e la larghezza ora è corretta.
Come posso risolvere questi problemi?
Vedi il mio esempio demo su JSFiddle: http://jsfiddle.net/dennismadsen/xxy2uy9x/
Grazie. Che dire dell'altezza dei componenti HighChart? – dhrm
Non sono sicuro della funzione di rotazione - dove hai impostato l'altezza per questo? Sembra che gli sguardi di 'rowHeight' non funzionino: http://jsfiddle.net/xxy2uy9x/6/? O forse c'è qualche limite (larghezza del browser) quando viene applicato 'rowHeight'? Ad ogni modo, se 'reflow()' non funziona, prova 'chart.setSize (width, height)'. –
Sto impostando l'altezza usando '$ scope.gridsterOptions.rowHeight'. Nel mio esempio 300 px. Il margine/padding è incluso, quindi l'altezza finale del widget è di circa 280 px. Gli Highcharts si trovano all'interno di questi widget, ma hanno un'altezza di 400 px. – dhrm