# ngECharts
**Repository Path**: goldymark/ngECharts
## Basic Information
- **Project Name**: ngECharts
- **Description**: Baidu ECharts(http://echarts.baidu.com) 的AngularJS封装包。
- **Primary Language**: JavaScript
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: http://goldymark.github.io/ngECharts/
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2015-02-26
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#ngECharts
Baidu ECharts(http://echarts.baidu.com) 的AngularJS封装包。
## 说明:
1. 本插件受https://github.com/violet-day/angular-echarts 启发,本着学习AngularJS而写;
2. 封装了echarts的**showLoading**,**hideLoading**,**connect**和**添加自定义地图的方法**;
## Demo:
http://goldymark.github.io/ngECharts/
## 许可证:
Apache License 2.0
## 依赖库:
- Angularjs (开发时使用1.2.16版本,没有做兼容性测试,其他版本应该没问题);
- [Baidu ECharts](http://echarts.baidu.com);
## 安装:
引入ngECharts的js文件:
**JS:**
```html
```
## 使用:
1、 加载ngECharts模块:
**JS:**
```javascript
angular.module('myApp', ['ngECharts'])
```
2、 使用echarts指令:
**HTML:**
```html
```
3、 Controller代码:
**JS:**
```javascript
angular.module('myApp', ['ngECharts'])
.controller('myCtrl', ['$scope','ec', function($scope,ec){
$scope.option = ...
}]);
```
## directive参数:
### [可选][类型:string] id:
#### 说明:ECharts的id,当需要多图联动的时候必须设置,且**唯一**,不设置的情况下默认为echart,建议设置并互不相同;
#### 默认值:echart
### [必须][类型:object] option:
#### 说明:ECharts的图表选项,[详情](http://echarts.baidu.com/doc/doc.html);
### [可选][类型:string] width:
#### 说明:图表宽度,同css;
#### 默认值:同父元素宽度
### [可选][类型:string] height:
#### 说明:图表高度,同css;
#### 默认值:同父元素高度
## Service:
### 名称:ec
#### 示例代码:
```javascript
angular.module('myApp', ['ngECharts'])
.controller('myCtrl', ['$scope','$timeout', 'ec', function($scope,$timeout,ec){
$timeout(function(){
ec.showLoading('chart1');
ec.connect(['chart2','chart3']);
});
$timeout(function(){
ec.hideLoading('chart1');
},1000);
ec.addMap("FS","data/fs.json");
}]);
```
### 方法说明:
### getInstance(id)
#### 说明:获取对应id的echarts实例化对象,等同于获取echarts.init(element)后的对象;
#### 示例代码:
```javascript
var chart1 = ec.getInstance('chart1');
```
### getOption(id)
#### 说明:获取对应id的echarts图表选项,与官方的getOption()不同的是,这里多了一个扩展的id参数;
#### 示例代码:
```javascript
var option1 = ec.getOption('chart1');
```
### clear()
#### 说明:清空所有echarts实例化对象和图表选项,会执行官方的dispose()方法,一般无需显式调用;
#### 示例代码:
```javascript
ec.clear();
```
### showLoading(ids,text,effects)
#### 说明:过渡控制,显示Loading(读取中),[详情](http://echarts.baidu.com/doc/doc.html#Loadingoption);
#### [必须][类型:array of string | string] ids : echarts对应的id;
#### [可选][类型:string] text : 自定义显示的语句,'\n'指定换行;
#### [可选][类型:array of string] effects : loading效果,可选为:'spin' | 'bar' | 'ring' | 'whirling' | 'dynamicLine' | 'bubble',支持外部装载;默认随机显示,没有ring效果(不好看);
#### 示例代码:
```javascript
$timeout(function(){
// chart1显示Loading
ec.showLoading('chart1','拼命加载中……',['spin','whirling','bar']);
// chart2,chart3都显示Loading
ec.showLoading(['chart2','chart3'],'拼命加载中……',['spin','whirling','bar','bubble']);
});
```
### hideLoading(ids)
#### 说明:过渡控制,隐藏Loading(读取中);
#### [必须][类型:array of string | string] ids : echarts对应的id;
#### 示例代码:
```javascript
$timeout(function(){
ec.hideLoading(['chart1','chart2','chart3']);
},2500);
```
### connect(ids)
#### 说明:多图联动,传入echarts对应的id,支持可变参数和数组,[详情](http://echarts.baidu.com/doc/doc.html#实例方法);
#### 注意:此处实现的connect是双向绑定,而非官方的单项绑定;
#### [必须][类型:string... | array of string] ids : echarts对应的id;
#### 示例代码:
```javascript
$timeout(function(){
// 写法1
ec.connect('chart1','chart2');
// 写法2
ec.connect(['chart1','chart2']);
});
```
### addMap(mapName,mapPath,specialArea)
#### 说明:扩展使用自定义地图,[详情](http://echarts.baidu.com/doc/doc.html#附录地图扩展);
#### [必须][类型:string] mapName : 自定义地图名称;
#### [必须][类型:string] mapPath : 自定义地图的geoJson文件所在路径;
#### [可选][类型:object] specialArea : 请看官方文档解释;
#### 示例代码:
```javascript
$timeout(function(){
ec.addMap("FS","data/fs.json");
});
```