<!DOCTYPE html>
<html>
<head>
<title>Kendo Column Chart</title>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.930/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.930/styles/kendo.rtl.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.930/styles/kendo.default.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.930/styles/kendo.dataviz.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.930/styles/kendo.dataviz.default.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.3.930/styles/kendo.mobile.all.min.css">
<script src="http://cdn.kendostatic.com/2015.1.408/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.3.1316/js/angular.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2015.3.930/js/kendo.all.min.js"></script>
<script src="script.js"></script>
</head>
<!-- BOB TEST - GRID WITH DROPDOWN LIST -->
<body ng-app="app" ng-controller="myCtrl">
<h1>Angular-Kendo Column Charts</h1>
<div kendo-chart k-options="chartOptions" k-rebind="chartOptions"></div>
<style scoped>
</style>
</body>
</html>
// Code goes here
var app = angular.module('app', ['kendo.directives']);
app.controller("myCtrl", function ($compile, $scope) {
$scope.chartOptions = /* chart data*/
{
"title": {
"text": "Bar Chart",
"position": "bottom"
},
"legend": {
"visible": true,
"position": "top"
},
"seriesDefaults": {
"type": "column",
"stack": false
},
"series": [
{
"field": "field1",
"name": "1 Day VaR (99%)"
},
{
"field": "field2",
"name": "10 Day VaR (99%)"
},
{
"field": "field3",
"name": "Day over Day VaR"
}
],
"dataSource": [
{
"field1": 5546919.064936,
"field2": 12667955.381901,
"field3": 0
},
{
"field1": 2297941.24812,
"field2": 7451762.537854,
"field3": 0
},
{
"field1": 9832458.096596,
"field2": 32491698.248662,
"field3": 0
},
{
"field1": 22700818.88167,
"field2": 76902823.758745,
"field3": 0
},
{
"field1": 3742748.296602,
"field2": 10250567.674588,
"field3": 0
}
],
"valueAxis": {
"labels": {
"format": "{0:c}",
"rotation": 0
},
"line": {
"visible": false
},
"axisCrossingValue": 0
},
"categoryAxis": {
"categories": [
"London",
"New York",
"Dubai",
"Paris",
"Stockholm"
],
"majorGridLines": {
"visible": false
},
"labels": {
"rotation": -30,
"margin": 0
}
},
"tooltip": {
"visible": true,
"template": "#= series.name #: #= kendo.format('{0:C0}', value) #"
}
}
// setup new 'kendoWidgetWatcher'
var kendoWidgetWatcher;
registerWatcher();
function registerWatcher() {
kendoWidgetWatcher = $scope.$on("kendoWidgetCreated", refreshKendoWidgets);
}
function refreshKendoWidgets(ev, widget) {
elem2 = widget.element.parent().find('.k-chart').data("kendoChart"); //widget.element.parent().find('.k-chart');
if (elem2 !== undefined) {
var wt = widget.getSize().width; // first time coming out of modal, this is alway zero !!
if (wt === 0) {
// otherwise the kendo widget does not size properly within its container.
wt = (window.innerWidth / 2) - 60;
}
ht = widget.element.height(); // get the container's height; getSize().height above is too high
elem2.setOptions({ chartArea: { height: ht, width: wt } });
elem2.resize($(".k-chart"));
if (kendoWidgetWatcher) { // disable watch (otherwise it fires several more times)
kendoWidgetWatcher();
}
}
}
});