Echart的angularjs封装
来源:互联网 发布:java 线程死锁 编辑:程序博客网 时间:2024/05/20 04:32
http://www.cnblogs.com/goodbeypeterpan/p/5542389.html
ehcart是百度做的数据图表,基于原生js。接口和配置都写的很好很易读,还可以用于商用。
下面正题
用原生js的话,引入echarts.js
无论是图表的样式设置,图表渲染,数据填充都是基于echart对象的option的,官网给出使用方法:
var dom = document.getElementById('intro-chart');var chart = echarts.init(dom); chart.setOption({ backgroundColor: '#08263a', title: { text: 'ECharts Example', textStyle: { color: '#b1cfa5', fontSize: 18 }, left: 'center', top: 25 }, xAxis: { show: false, data: ... }, ... series: [{ type: 'bar', data: ..., itemStyle: { normal: { barBorderRadius: 5, shadowBlur: 10, shadowColor: '#111' } }, ... }]});
使用angular配置其实只要给ng对象绑定$scope里不同图表的option就行,html像这样:
<div e-chart e-data="option1"></div><div e-chart e-data="option2"></div><div e-chart e-data="option3"></div>
在对用controller里面声明一下option,你可以直接去官网复制,这里就只配置一个tooltips:
$scope.option1 = { tooltip: { trigger: 'axis' }, series: [这里是数据] };
接下来就是我们的directive
app.directive('eChart', function($http, $window) { function link($scope, element, attrs) { var myChart = echarts.init(element[0]); $scope.$watch(attrs['eData'], function() { var option = $scope.$eval(attrs.eData); if (angular.isObject(option)) { myChart.setOption(option); } }, true); $scope.getDom = function() { return { 'height': element[0].offsetHeight, 'width': element[0].offsetWidth }; }; $scope.$watch($scope.getDom, function() { // resize echarts图表 myChart.resize(); }, true); } return { restrict: 'A', link: link };});
先echarts.init(element[0])将图表初始化在准备好的dom上,
绘制图表直接调用echart的API去setOption,然后就是两个watch啦,最重要的是$scope.$watch(attrs['eData'],当option里的配置或者数据变化的时候,绘制图表
而$scope.$watch($scope.getDom为了响应式准备的,当dom的width或者height变化的时候调用api里的resize()方法就可以了。
当然如果还有其他你的需要,直接写 watch 或者 watch收集 就可以了
阅读全文
0 0
- Echart的angularjs封装
- 百度echart的java封装
- Echart组件封装
- echart统计图数据封装
- 使用百度前端EChart框架封装的Android版TAndroidEChart
- echart使用angularjs发送请求
- echart的使用记录
- Echart 的实例
- EChart的简单Demo
- echart的简单入门
- echart
- Echart
- echart
- EChart
- Echart
- Echart
- EChart
- Angularjs封装指令
- TFS2013 数据库链接sqlserver express(2012)
- SpringBoot项目在IntelliJ IDEA中实现热部署
- SQL Server之存储过程基础知识
- 第十四周
- s3c2440 SDRAM实验
- Echart的angularjs封装
- 如何在windows下安装配置pyspark notebook
- 更改Visual Studio 的主题设置
- 观察者模式【Observer Pattern】
- 水果消除(DPS)
- python 爬虫动态加载网站
- 第2章 在 HTML 中使用 JavaScript <script>元素
- 自定义MVC
- 51单片机之定时器