Highcharts-ng
A simple Angularjs directive for Highcharts.
AngularJs, Highcharts
by arjunasuresh3
HTML
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<script src="https://code.angularjs.org/1.3.17/angular.js"></script>
<script src="https://rawgit.com/toddmotto/angular-component/master/src/angular-component.js"></script>
<script src="https://rawgit.com/luckylooke/8433aa366bb680014cd0/raw/83fbda68a60230f3fe3c01cac435bcc59ccd8863/angularMergePolyfill.js"></script>
<script src="https://code.highcharts.com/5.0.14/highcharts.js"></script>
<script src="https://rawgit.com/pablojim/highcharts-ng/1.2.1/src/highcharts-ng.js"></script>
<div ng-app="myapp">
<div ng-controller="myctrl">
<h3><a href="https://github.com/pablojim/highcharts-ng">Using version 0.01 of Highcharts-ng</a></h3>
<h5><a href="https://github.com/pablojim/highcharts-ng">Newer version available...</a></h5>
<input ng-model="chart.title.text">
<button ng-click="addSeries()">Add Series</button>
<button ng-click="addPoints()">Add Points to Random Series</button>
<button ng-click="removeRandomSeries()">Remove Random Series</button>
<button ng-click="swapChartType()">Line/Bar</button>
<highchart id="chart1" series="chart.series" title="chart.title" options="chart.options"></highchart>
</div>
</div>
<h3><a href="https://github.com/pablojim/highcharts-ng">See Highcharts-ng on github</a></h3>
JavaScript
//See: https://github.com/pablojim/highcharts-ng
var myapp = angular.module('myapp', ["highcharts-ng"]);
myapp.controller('myctrl', function ($scope) {
$scope.addPoints = function () {
var seriesArray = $scope.chart.series
var rndIdx = Math.floor(Math.random() * seriesArray.length);
seriesArray[rndIdx].data = seriesArray[rndIdx].data.concat([1, 10, 20])
};
$scope.addSeries = function () {
var rnd = []
for (var i = 0; i < 10; i++) {
rnd.push(Math.floor(Math.random() * 20) + 1)
}
$scope.chart.series.push({
data: rnd
})
}
$scope.removeRandomSeries = function () {
var seriesArray = $scope.chart.series
var rndIdx = Math.floor(Math.random() * seriesArray.length);
seriesArray.splice(rndIdx, 1)
}
$scope.options = {
type: 'line'
}
$scope.swapChartType = function () {
if (this.chart.options.chart.type === 'line') {
this.chart.options.chart.type = 'bar'
} else {
this.chart.options.chart.type = 'line'
}
}
$scope.chart = {
options: {
chart: {
type: 'bar'
}
},
series: [{
data: [10, 15, 12, 8, 7]
}],
title: {
text: 'Hello'
}
}
});