diff --git a/views/ngXosViews/ceilometerDashboard/gulp/build.js b/views/ngXosViews/ceilometerDashboard/gulp/build.js
index b53a0d4..f49cc1e 100644
--- a/views/ngXosViews/ceilometerDashboard/gulp/build.js
+++ b/views/ngXosViews/ceilometerDashboard/gulp/build.js
@@ -29,7 +29,7 @@
 
 var TEMPLATE_FOOTER = `}]);
 angular.module('xos.ceilometerDashboard').run(function($location){$location.path('/')});
-angular.bootstrap(angular.element('#xosCeilometerDashboard'), ['xos.ceilometerDashboard']);`;
+angular.element(document).ready(function() {angular.bootstrap(angular.element('#xosCeilometerDashboard'), ['xos.ceilometerDashboard']);});`;
 
 module.exports = function(options){
   
diff --git a/xos/core/xoslib/static/js/xosCeilometerDashboard.js b/xos/core/xoslib/static/js/xosCeilometerDashboard.js
index cad7eee..9503596 100644
--- a/xos/core/xoslib/static/js/xosCeilometerDashboard.js
+++ b/xos/core/xoslib/static/js/xosCeilometerDashboard.js
@@ -23,7 +23,7 @@
 $templateCache.put("templates/ceilometer-samples.tpl.html","<!-- <pre>{{ vm | json}}</pre> -->\n\n<div class=\"row\">\n  <div class=\"col-xs-10\">\n    <h1>{{vm.name | uppercase}}</h1>\n  </div>\n  <div class=\"col-xs-2\">\n    <a ui-sref=\"ceilometerDashboard\" class=\"btn btn-primary pull-right\">\n      <i class=\"glyphicon glyphicon-arrow-left\"></i> Back to list\n    </a>\n  </div>\n</div>\n<div class=\"row\" ng-show=\"vm.loader\">\n  <div class=\"col-xs-12\">\n    <div class=\"loader\">Loading</div>\n  </div>\n</div>\n<section ng-if=\"!vm.loader && !vm.error\">\n  <div class=\"row\">\n    <form class=\"form-inline col-xs-8\" ng-submit=\"vm.addMeterToChart(vm.addMeterValue)\">\n      <select ng-model=\"vm.addMeterValue\" class=\"form-control\" ng-options=\"resource.id as resource.name for resource in vm.sampleLabels\"></select>\n      <button class=\"btn btn-success\"> \n        <i class=\"glyphicon glyphicon-plus\"></i> Add\n      </button>\n    </form>\n    <div class=\"col-xs-4 text-right\">\n      <a ng-click=\"vm.chartType = \'line\'\" class=\"btn\" ng-class=\"{\'btn-default\': vm.chartType != \'bar\', \'btn-primary\': vm.chartType == \'line\'}\">Lines</a>\n      <a ng-click=\"vm.chartType = \'bar\'\" class=\"btn\" ng-class=\"{\'btn-default\': vm.chartType != \'line\', \'btn-primary\': vm.chartType == \'bar\'}\">Bars</a>\n    </div>\n  </div>\n  <div class=\"row\" ng-if=\"!vm.loader\">\n    <div class=\"col-xs-12\">\n      <canvas ng-if=\"vm.chartType === \'line\'\" id=\"line\" class=\"chart chart-line\" chart-data=\"vm.chart.data\" chart-options=\"{datasetFill: false}\"\n        chart-labels=\"vm.chart.labels\" chart-legend=\"false\" chart-series=\"vm.chart.series\">\n      </canvas>\n      <canvas ng-if=\"vm.chartType === \'bar\'\" id=\"bar\" class=\"chart chart-bar\" chart-data=\"vm.chart.data\"\n        chart-labels=\"vm.chart.labels\" chart-legend=\"false\" chart-series=\"vm.chart.series\">\n      </canvas>\n      <!-- <pre>{{vm.chartMeters | json}}</pre> -->\n    </div>\n  </div>\n  <div class=\"row\" ng-if=\"!vm.loader\">\n    <div class=\"col-xs-12\">\n      <a ng-click=\"vm.removeFromChart(meter)\" class=\"btn btn-chart\" ng-style=\"{\'background-color\': vm.chartColors[$index]}\" ng-repeat=\"meter in vm.chartMeters\">\n        {{meter.resource_name || meter.resource_id}}\n      </a>\n    </div>\n  </div>\n</section>\n<section ng-if=\"!vm.loader && vm.error\">\n  <div class=\"alert alert-danger\">\n    {{vm.error}}\n  </div>\n</section>");
 $templateCache.put("templates/ceilometer-stats.tpl.html","<div ng-show=\"vm.loader\" class=\"loader\">Loading</div>\n\n<section ng-if=\"!vm.loader && !vm.error\">\n\n  <div class=\"alert alert-danger\" ng-if=\"vm.stats.length == 0\">\n    No result\n  </div>  \n\n  <table class=\"table\" ng-if=\"vm.stats.length > 0\">\n    <tr>\n      <th>\n        <a ng-click=\"(order == \'category\') ? order = \'-category\' : order = \'category\'\">Type:</a>\n      </th>\n      <th>\n        <a ng-click=\"(order == \'resource_name\') ? order = \'-resource_name\' : order = \'resource_name\'\">Resource:</a>\n      </th>\n      <th>\n        <a ng-click=\"(order == \'meter\') ? order = \'-meter\' : order = \'meter\'\">Meter:</a>\n      </th>\n      <th>\n        Unit:\n      </th>\n      <th>\n        Value:\n      </th>\n    </tr>\n    <!-- <tr>\n      <td>\n        <input type=\"text\" ng-model=\"query.category\">\n      </td>\n      <td>\n        <input type=\"text\" ng-model=\"query.resource_name\">\n      </td>\n      <td>\n        <input type=\"text\" ng-model=\"query.meter\">\n      </td>\n      <td>\n        <input type=\"text\" ng-model=\"query.unit\">\n      </td>\n      <td>\n        <input type=\"text\" ng-model=\"query.value\">\n      </td>\n    </tr> -->\n    <tr ng-repeat=\"item in vm.stats | orderBy:order\">\n      <td>{{item.category}}</td>\n      <td>{{item.resource_name}}</td>\n      <td>{{item.meter}}</td>\n      <td>{{item.unit}}</td>\n      <td>{{item.value}}</td>\n    </tr>\n  </table>\n</section>\n\n<section ng-if=\"!vm.loader && vm.error\">\n  <div class=\"alert alert-danger\">\n    {{vm.error}}\n  </div>\n</section>\n");}]);
 angular.module('xos.ceilometerDashboard').run(["$location", function($location){$location.path('/')}]);
-angular.bootstrap(angular.element('#xosCeilometerDashboard'), ['xos.ceilometerDashboard']);
+angular.element(document).ready(function() {angular.bootstrap(angular.element('#xosCeilometerDashboard'), ['xos.ceilometerDashboard']);});
 /**
  * © OpenCORD
  *
