AngularJS自定义Echarts标签 — 折线图Line
2015-08-21 11:56
796 查看
很多时候数据都要用图表的形式来展示,Echarts就是一款开源、功能强大的图表工具,但有些图表只是数据不同,不可能每一个图都单独画一个,所以我就考虑能不能把它封装起来?这使我瞄准了刚接触的AngularJS自定义指令directive,把两者结合一下,就有了一个简单可复用的图表标签了。
这些代码提供出来,大家可以拿来就用,在这里我不会解释的很详细,都是基于有AngualrJS基础和htm基础的,但由于笔者功力不足,大家如果有什么不明白或错误的地方可以回复留言,多多交流交流。
1、准备文件
AngularJS的js文件:angular.js
Echarts的js文件:echarts-all.js
2、html页面
3、line.js的编码
这些代码提供出来,大家可以拿来就用,在这里我不会解释的很详细,都是基于有AngualrJS基础和htm基础的,但由于笔者功力不足,大家如果有什么不明白或错误的地方可以回复留言,多多交流交流。
1、准备文件
AngularJS的js文件:angular.js
Echarts的js文件:echarts-all.js
2、html页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>折线图</title> </head> <!--加载AngularJS--> <script src="js/angular/angular.js"></script> <!--加载ECharts--> <script src="js/echarts-2.2.7/build/dist/echarts-all.js"></script> <script src="js/line.js"></script> <body ng-app="app" ng-controller="lineCtrl"> <line id="main" legend="legend" item="item" data="data"></line> </body> </html>
3、line.js的编码
var app = angular.module('app', []); app.controller('lineCtrl', function($scope) { $scope.legend = ["Berlin", "London",'New York','Tokyo']; $scope.item = ['Jan', 'Feb', 'Mar', 'Apr', 'Mar', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; $scope.data = [ [-1, 1, 3, 7, 13, 16, 18, 16, 15, 9, 4, 2], //Berlin [0, 1, 4, 7, 12, 15, 16, 15, 15, 10, 6, 5], //London [4, 4, 5, 10, 16, 22, 25, 24, 20, 14, 9, 3], //New York [7, 6, 8, 14, 17, 22, 25, 27, 24, 17, 14, 10] //Tokyo ]; }); app.directive('line', function() { return { scope: { id: "@", legend: "=", item: "=", data: "=" }, restrict: 'E', template: '<div style="height:400px;"></div>', replace: true, link: function($scope, element, attrs, controller) { var option = { // 提示框,鼠标悬浮交互时的信息提示 tooltip: { show: true, trigger: 'item' }, // 图例 legend: { data: $scope.legend }, // 横轴坐标轴 xAxis: [{ type: 'category', data: $scope.item }], // 纵轴坐标轴 yAxis: [{ type: 'value' }], // 数据内容数组 series: function(){ var serie=[]; for(var i=0;i<$scope.legend.length;i++){ var item = { name : $scope.legend[i], type: 'line', data: $scope.data[i] }; serie.push(item); } return serie; }() }; var myChart = echarts.init(document.getElementById($scope.id),'macarons'); myChart.setOption(option); } }; });
效果图如下:
相关文章推荐
- 解决AngularJS使用ng-bind-html会过滤html中style属性的问题
- avalon 类似于angular
- Angularjs中作用域与模板之间的关系
- codeforces 177B2 B2. Rectangular Game(数论)
- 【转】angularjs指令中的compile与link函数详解
- Ubuntu 下 Ionic 环境配置
- angular初体验(简单易学,适合新手,很新很新的手哈哈哈)
- angularjs,ionic,cordova简单应用示例
- AngularJS——搭建PhoneCat项目的开发与测试环境
- 观察者模式在ng(Angular)中的应用
- angular指令插件1——toggle
- Angular 常用ng指令详解
- AngularJS学习笔记之directive—scope选项与绑定策略
- angularjs 向元素内的方法传入自身
- AngularJS 开篇啦
- AngularJS 从入门到精通(过滤器(Filter) )
- [Angularjs]ng-select和ng-options(转载)
- 现在就开始使用AngularJS的三个重要原因
- 闲话js前端框架(2)——庞大的angularjs
- Angular学习资源汇集