angularjs+highcharts开发

1、angularjs+highcharts,highcharts的引入要通过指令的方式,要引入highcharts-ng.js文件,但是要注意此文件的中的数据格式。{options:{},series:{}},options包括了大部分的配置,series是图表数据

2、在html页面中可直接写写入:<highchart series=‘chart.series‘ options=‘series.options‘></highchart>

3、其中出现了样式变为全黑的情况,解决方法是引入他们官网的highcharts.js就可以解决,同时导出为黑色的图片也得到了解决

4、注意highcharts-ng.js的源文件的写法,找到一个适合自己项目的文件,或者是将文件改成自己需要的样子,其中图表自适应的问题,就是将指令中的template:<div></div>,replace:true,便可解决

5、代码如下:

  1 <!DOCTYPE html>
  2 <html lang="en" ng-app="myChart">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <!--<link rel="stylesheet" href="css/highcharts.css">-->
  7     <script src="js/jquery.min.js"></script>
  8     <script src="js/highcharts.js"></script>
  9     <script src="js/exporting.js"></script>
 10     <script src="js/angular.min.js"></script>
 11     <script src="js/highcharts-ng.js"></script>
 12 </head>
 13 <body>
 14     <div ng-controller="BigChart">
 15         <highchart series="chartConfig.series" options="chartConfig.options" class="span10"></highchart>
 16     </div>
 17     <script>
 18         var myApp = angular.module(‘myChart‘,["highcharts-ng"]);
 19         Highcharts.setOptions({
 20             lang:{
 21                 contextButtonTitle: "图表导出菜单",
 22                 downloadJPEG:"下载 JPEG 图片",
 23                 downloadPDF:"下载 PDF 文件",
 24                 downloadPNG:"下载 PNG 文件",
 25                 downloadSVG:"下载 SVG 文件",
 26                 printChart:"打印图表"
 27             }
 28         });
 29         var dafaultMenuItem = Highcharts.getOptions().exporting.buttons.contextButton.menuItems;
 30         myApp.controller(‘BigChart‘, [‘$scope‘,function($scope) {
 31             var chartConfig = {
 32                 options:{
 33                     chart: {
 34                         type: ‘column‘
 35                     },
 36                     exporting: {
 37                         buttons: {
 38                             contextButton: {
 39                                 // 自定义导出菜单项目及顺序
 40                                 menuItems: [
 41                                     dafaultMenuItem[0],
 42                                     dafaultMenuItem[2],
 43                                     dafaultMenuItem[3],
 44                                     dafaultMenuItem[4],
 45                                     dafaultMenuItem[5]
 46                                 ]
 47                             }
 48                         }
 49                     },
 50                     title: {
 51                         text: ‘Stacked column chart‘
 52                     },
 53                     xAxis: {
 54                         categories: [‘Apples‘, ‘Oranges‘, ‘Pears‘, ‘Grapes‘, ‘Bananas‘]
 55                     },
 56                     yAxis: {
 57                         min: 0,
 58                         title: {
 59                             text: ‘Total fruit consumption‘
 60                         },
 61                         stackLabels: {
 62                             enabled: true,
 63                             style: {
 64                                 fontWeight: ‘bold‘,
 65                                 color: (Highcharts.theme && Highcharts.theme.textColor) || ‘gray‘
 66                             }
 67                         }
 68                     },
 69                     legend: {
 70                         align: ‘right‘,
 71                         x: -70,
 72                         verticalAlign: ‘top‘,
 73                         y: 20,
 74                         floating: true,
 75                         backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || ‘white‘,
 76                         borderColor: ‘#CCC‘,
 77                         borderWidth: 1,
 78                         shadow: false
 79                     },
 80                     tooltip: {
 81                         formatter: function() {
 82                             return ‘<b>‘+ this.x +‘</b><br/>‘+
 83                                     this.series.name +‘: ‘+ this.y +‘<br/>‘+
 84                                     ‘Total: ‘+ this.point.stackTotal;
 85                         }
 86                     },
 87                     plotOptions: {
 88                         column: {
 89                             stacking: ‘normal‘,
 90                             dataLabels: {
 91                                 enabled: true,
 92                                 color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || ‘white‘,
 93                                 style: {
 94                                     textShadow: ‘0 0 3px black, 0 0 3px black‘
 95                                 }
 96                             }
 97                         }
 98                     },
 99                 },
100                 series: [{
101                     name: ‘John‘,
102                     data: [5, 3, 4, 7, 2]
103                 }, {
104                     name: ‘Jane‘,
105                     data: [2, 2, 3, 2, 1]
106                 }, {
107                     name: ‘Joe‘,
108                     data: [3, 4, 4, 2, 5]
109                 }]
110             };
111             $scope.chartConfig = chartConfig;
112
113 //            $(‘#container‘).highcharts(chartConfig);
114         }])
115     </script>
116 </body>
117 </html>

6、效果如下:

时间: 2024-12-20 20:00:29

angularjs+highcharts开发的相关文章

AngularJS进阶(二十九)AngularJS项目开发技巧之localStorage存储

AngularJS项目开发技巧之localStorage存储 绪 项目开发完毕,测试阶段发现后台管理端二维码生成有问题,问题在于localStorage的存储.如下图左所示,二维码生成完毕包含信息如下图左所示,实际二维码信息如下图右所示: 经过测试发现二维码实际存储的是上一次的结果.好熟悉~Bingo,自己做导航栏高亮时就遇到过这个问题,当时就是使用的localStorage.问题还是出在localStorage身上.但是存储时:localStorage.setItem(key,value),如

《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想

总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and AngularJS Web Development>,总的来说是一本讲述如何用Javascript进行B/S架构全栈开发的书. 该书主要讲解4种技术(框架),分为6个部分29个章节.4种技术即Node.js.MongoDB.Express.AngularJS,业内称为MEAN:6个部分我个人理解为: 基础(引言).

AngularJS进阶(三十一)AngularJS项目开发技巧之获取模态对话框中的组件ID

AngularJS项目开发技巧之获取模态对话框中的组件ID 需求 出于项目开发需求,须要实现的业务逻辑是:药店端点击查看"已发货""已收货"订单详情时.模块弹出框中仅仅应出现"取消"button.但现实的情况例如以下图所看到的. 模态框核心代码例如以下: <script type="text/ng-template" id="billDtlContent.html"> <div class

HighCharts开发说明

一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题下有对齐方式(align),标题文字(text)等.下图为整个图表的每个部分位置说明(请对照下面HighCharts整体结构) 二.HighCharts整体结构: 通过查看API文档我们知道HighCharts结构如下:(API文档在文章后面提供下载) var chart = new Highchar

Node.js+MongoDB+AngularJS Web开发

这篇是计算机类的优质预售推荐>>>><Node.js+MongoDB+AngularJS Web开发> MEAN全栈工程师首部实战书 从服务器到浏览器基于JavaScript的Web应用程序权威指南 内容完整细致可直接用来入门任一技术 编辑推荐 Node.js是一种领先的服务器端编程环境,MongoDB是最流行的NoSQL数据库,而AngularJS正迅速成为基于MVC的前端开发的领先框架.它们结合在一起使得Web程序员能够完全用JavaScript创建从服务器到客户端

AngularJS移动开发中的坑汇总

使用AngualrJs开发移动App已经快半年了,逐渐积累了很多AngularJS的问题,特别是对于用惯了Jquery的开发者,转到AngularJS还是需要克服很多问题的.不像Jquery那样侧重DOM操作,AngularJS是以视图模型和双向绑定为核心的. 下面的内容假设你已经了解前端 MVC 概念,并对 AngularJS 有了一定经验,初学者读起来可能比较艰深晦涩.本文的总结会涉及部分在移动设备上特有的问题. DOM操作的问题 避免使用 jQuery 来操作 DOM,包括增加元素节点,移

AngularJS应用开发思维之3:依赖注入

找不到的API? AngularJS提供了一些功能的封装,但是当你试图通过全局对象angular去 访问这些功能时,却发现与以往遇到的库大不相同. $http 比如,在jQuery中,我们知道它的API通过一个全局对象:$ 暴露出来,当你需要 进行ajax调用时,使用$.ajax()就可以了.这样的API很符合思维的预期. AngularJS也暴露了一个全局对象:angular,也对ajax调用进行封装提供了一个 $http对象,但是,但是,当你试图沿用旧经验访问angular.$http时,发

[转]AngularJS移动开发中的坑汇总

使用AngualrJs开发移动App已经快半年了,逐渐积累了很多AngularJS的问题,特别是对于用惯了Jquery的开发者,转到AngularJS还是需要克服很多问题的.不像Jquery那样侧重DOM操作,AngularJS是以视图模型和双向绑定为核心的. 下面的内容假设你已经了解前端 MVC 概念,并对 AngularJS 有了一定经验,初学者读起来可能比较艰深晦涩.本文的总结会涉及部分在移动设备上特有的问题. DOM操作的问题 避免使用 jQuery 来操作 DOM,包括增加元素节点,移

AngularJS应用开发思维之1:声明式界面

这篇博客之前承接上一篇:http://www.cnblogs.com/xuema/p/4335180.html 重写示例:模板.指令和视图 AngularJS最显著的特点是用静态的HTML文档,就可以生成具有动态行为的页面. 还是前面的小时钟示例,我们使用AngularJS模板来重写,示例已经嵌入→_→: 示例地址:http://www.hubwiz.com/course/54f3ba65e564e50cfccbad4b/ HTML文件看起来像普通的HTML,只是其中多了一些特别的标记 (比如: