# Pastebin 504pZI8e var app = angular.module('metricsApp'); app.controller('ChartsController', ['$scope', 'MetricData', 'MetricOptions', function ChartsController($scope, MetricData, MetricOptions) { var optionsPromise = MetricOptions.getOptions(1, { title: 'Test metric', xType: 'datetime', yTitle: 'Test items', seriesName: 'test series' }) .then( function (success) { return success; }, function (error) { console.log(error); } ); var rawToChart = function (rawValues) { return rawValues.map(function (p) { return [p.x, p.value] }); } var mergeOptionsWithValues = function (options, metricValues) { options.series[0].data = rawToChart(metricValues.result[0].values); return options; } var getDataPromise = function (interval) { return optionsPromise .then( function (options) { return MetricData.getData(interval).then( function (metricValues) { return mergeOptionsWithValues(options, metricValues); } ); } ); } $scope.monthlyDataPromise = getDataPromise(1); }]);