AngularJS引入Echarts的Demo

最近要用到图表展示,想了想,还是首选Echarts,HighCharts和D3.js备用吧,

而项目中也用到了AngularJS,所以需要把Echarts引入到AngularJs中一起使用,

试了试,最方便的还是用指令,(虽然指令有点不好调,用了再说)。

1、引入angular.js

2、引入echarts.js

3、引入jquery.js---可以省略

4、直接上代码:

  1 <!DOCTYPE html >
  2   <head>
  3     <meta charset="utf-8">
  4     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  5     <title>Echarts--柱状图与饼图</title>
  6     <link rel="stylesheet" href="../jc/jquery-ui.css">
  7      <script type="text/javascript" src="../jc/jquery.min.js"></script>
  8     <script type="text/javascript" src="../jc/jquery-ui.min.js"></script>
  9     <script type="text/javascript" src="../jc/angular.min.js"></script>
 10       <script type="text/javascript" src="../3rd/echarts/echarts.js"></script>
 11       <style>
 12           html{
 13               height:100%;
 14           }
 15
 16       </style>
 17   </head>
 18
 19   <body data-ng-app="MyApp" style="height:100%;">
 20     <div data-ng-controller=‘MyCtrl‘ style="width: 100%;height: 100%;">
 21     <h3>Echarts柱状图与饼图---指令directive</h3>
 22
 23     <div align="center" style="width: 80%; height:100%;">
 24         <div align="left">
 25             <select data-ng-model="chart"
 26             data-ng-options="x for (x, y) in myCharts"
 27             data-ng-change = "showChange(chart)"
 28             >
 29             </select>
 30         </div>
 31
 32         <div data-ng-show="show" bar-charts  data-source=‘groupData‘ style="width: 100%;height: 80%;"></div>
 33         <div data-ng-show="!show" pie-charts  data-source=‘group‘ data-ng-repeat="group in groupData"
 34                 style="width: 30%;height:30%;float: left;">
 35         </div>
 36     </div>
 37     </div>
 38     <script>
 39       angular.module(‘MyApp‘, [])
 40       .controller(‘MyCtrl‘, function($scope) {
 41           $scope.groupData = [‘测试栏目1‘,‘测试栏目2‘,‘测试栏目3‘,‘测试栏目4‘,‘测试栏目5‘,‘测试栏目6‘];
 42           $scope.chart = 0;
 43           $scope.show = true;
 44           $scope.myCharts = {
 45                 "柱状图":0,
 46                 "饼图":1
 47           };
 48           $scope.showChange = function(chart){
 49               if(chart==0){
 50                    $scope.show = true;
 51               }else{
 52                   $scope.show = false;
 53               }
 54             };
 55       })
 56       .directive(‘barCharts‘,function(){
 57         return{
 58             restrict:‘AE‘,
 59               scope :{
 60                   source:‘=‘
 61               },
 62               template:‘<div>这是柱图</div>‘,
 63               controller: function($scope){
 64               },
 65               link:function(scope,element,attr){
 66                   console.log(scope.source);
 67                   var chart =  element.find(‘div‘)[0];
 68                   var parent = element[‘context‘];
 69               //    console.log(parent.clientHeight+":"+parent.clientWidth);
 70                   chart.style.width =parent.clientWidth+‘px‘;
 71                   chart.style.height =parent.clientHeight+‘px‘;
 72
 73                   var myChart = echarts.init(chart);
 74                   var option = {
 75                         title:{
 76                             text:‘工作空间使用情况‘
 77                         },
 78                         tooltip:{
 79                             trigger:‘axis‘,
 80                             axisPointer:{
 81                                 type:‘shadow‘
 82                             }
 83                         },
 84                         legend: {
 85                             //data:[‘正常‘,‘警告‘,‘预警‘,‘剩余‘]
 86                         },
 87                         gird:{
 88                             left: ‘5%‘,
 89                             right: ‘5%‘,
 90                             bottom: ‘5%‘,
 91                             containLabel: true
 92                         },
 93                         xAxis:{
 94                             type:‘value‘
 95                         },
 96                         yAxis:{
 97                             type: ‘category‘,
 98                             data: scope.source  //[‘测试栏目1‘,‘测试栏目2‘,‘测试栏目3‘,‘测试栏目4‘,‘测试栏目5‘,‘测试栏目6‘]
 99                         },
100                         series:[
101                             {
102                                 name:‘已使用‘,
103                                 type:‘bar‘,
104                                 stack:‘存储空间‘,
105                                 label:{
106                                     normal:{
107                                         show:true,
108                                         position:‘insideRight‘
109                                     }
110                                 },
111                                 barWidth:‘80%‘,
112                                 data:[100,200,300,260,50,120]
113                             },
114                             {
115                                 name:‘剩余‘,
116                                 type:‘bar‘,
117                                 stack:‘存储空间‘,
118                                 label:{
119                                     normal:{
120                                         show:true,
121                                         position:‘insideRight‘
122                                     }
123                                 },
124                                 barWidth:‘80%‘,
125                                 data:[200,100,2,80,200,180]
126                             }
127                         ]
128                     };
129                   myChart.setOption(option);
130                   myChart.resize();
131               }
132         };
133       })
134       .directive(‘pieCharts‘,function(){
135           return{
136                 restrict:‘AE‘,
137                   scope :{
138                       source:‘=‘
139                   },
140                   template:‘<div>这是饼图</div>‘,
141                   controller: function($scope){
142                   },
143                   link:function(scope,element,attr){
144
145                       var chart =  element.find(‘div‘)[0];
146                       var parent = element[‘context‘];
147                       //console.log(parent.clientHeight+":"+parent.clientWidth);
148                       chart.style.width =parent.clientWidth+‘px‘;
149                       chart.style.height =parent.clientHeight+‘px‘;
150
151                       var myChart = echarts.init(chart);
152                        var option = {
153                           backgroudColor:‘#F2F2F2‘,
154                            title : {
155                               text: ‘某一个栏目‘,
156                               x:‘center‘,
157                               y:‘bottom‘
158                           },
159                           tooltip:{
160                               trigger:‘item‘,
161                               formatter:‘{a}<br/>{b} {c}({d}%)‘
162                           },
163                           series:[
164                                 {
165                                     name:‘空间使用‘,
166                                     type:‘pie‘,
167                                     radius:‘55%‘,
168                                     center:[‘50%‘,‘60%‘],
169                                     data:[
170                                         {value:50,name:‘已使用‘},
171                                         {value:450,name:‘未使用‘}
172                                     ],
173                                     itemStyle:{
174                                         emphasis: {
175                                             shadowBlur: 10,
176                                             shadowOffsetX: 0,
177                                             shadowColor: ‘rgba(0, 0, 0, 0.5)‘
178                                         }
179                                     }
180                                 }
181                           ]
182                        };
183                       myChart.setOption(option);
184                       myChart.resize();
185                   }
186           };
187       });
188     </script>
189   </body>
190
191 </html>

一个Demo,就不按格式写了!

以上!

时间: 2024-08-13 23:10:42

AngularJS引入Echarts的Demo的相关文章

vue按需引入echarts

下载安装echarts包:npm install echarts -D 一.全局引入 main.js中配置 import echarts from 'echarts' //引入echarts Vue.prototype.$echarts = echarts //引入组件 缺点:如果是完整的引入Echarts,会额外的引入其他无用的配置文件,造成应用文件体积过大,资源加载耗时过长,影响用户体验 二.按需引入 如果是在许多页面中都有用到,就写在main.js中 //引入基本模板 let echart

vue-webpack 引入echarts 注意事项

0.执行教程 https://www.cnblogs.com/goloving/p/8654176.html1.在index 中创建 div <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> &

VUE项目中按需引入ECharts.js

安装ECharts包 npm install echarts --save 引入 ECharts 在main.js中引入 1 // 引入 ECharts 主模块 2 let echarts = require('echarts/lib/echarts'); 3 // 引入折线图/柱状图等组件 4 require('echarts/lib/chart/line') 5 require('echarts/lib/chart/bar') 6 require('echarts/lib/chart/rad

vue按需引入/全局引入echarts

npm install echarts -S 1.按需引入 新建echarts.js公共引入 // 文件路径 @/lib/echarts.js 自行配置 // 加载echarts,注意引入文件的路径 import echarts from 'echarts/lib/echarts' // 再引入你需要使用的图表类型,标题,提示信息等 import 'echarts/lib/chart/bar' import 'echarts/lib/component/legend' import 'echar

通过echarts的demo

通过最近两天对echarts的了解,下面用echarts.js写了一个小效果: 效果的demo为: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>主页</title> <!-- 引入小图标 --> <link rel="shortcut icon" href=&qu

C# webApi 与 AngularJs 实现增删改Demo 讲解(一)

公司在使用webAPI+AngularJs+SlcikGrid进行产品开发,自己也是初学Angular,就做了一个Demo,实现增删改功能,希望可以帮助大家. 界面如同所示:  数据库一张单表很简单,如图所示:  所有JS代码如下: 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml" ng-app="infoApp"> 3 <head> 4 <meta

ECharts学习总结(二):标签式单文件引入echarts的方法

下载好echarts的库文件.然后在script里面引入. //from echarts example <body> <div id="main" style="height:400px;"></div> ... <script src="js/echarts-2.2.7/build/dist/echarts-all.js"></script> <script> var m

echarts HelloWord Demo

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

vue-element-admin 项目引入Echarts中的dataTool; echarts.dataTool.prepareBoxplotData is not a function

import echarts from 'echarts' import dataTool  from 'echarts/extension/dataTool' 引用了就可以输出,自动和echarts关联上来. created(){ console.log('echarts.dataTool',echarts.dataTool) } // 然后在可以用来把数据转化为盒须图需要的. var data = echarts.dataTool.prepareBoxplotData(dataAll); 其