<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../lib/bootstrap-3.3.7/css/bootstrap.min.css">
<script src="../lib/jquery/jquery.min.js"></script>
<script src="../lib/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<script src="../lib/angular-1.7.0/angular.js"></script>
<script src="../lib/echarts/echarts.js"></script>
<script>
var app = angular.module('app', []);
app.directive('eChart', function () {
var eChartDirective = {
restrict:'EA',
template:'<div></div>',
replace:true,
scope:{
option:'=',
forceRender:'='
},
link:function(scope,eles,attrs,ctrl){
var chart = echarts.init(eles[0]);
scope.$watch('option',function(newOption){
chart = echarts.init(eles[0]);
chart.setOption(newOption);
},true);
scope.$watch('forceRender',function(newOption){
chart.resize();
},true);
window.addEventListener('resize',function(){
chart.resize();
})
}
};
return eChartDirective;
});
app.controller('myCtrl', function ($scope) {
$scope.option= {
title: {
text: '某站点用户访问来源',
subtext: '纯属虚构',
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
orient: 'vertical',
left: 'left',
data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
},
series: [
{
name: '访问来源',
type: 'pie',
radius: '55%',
center: ['50%', '60%'],
data: [
{value: 335, name: '直接访问'},
{value: 310, name: '邮件营销'},
{value: 234, name: '联盟广告'},
{value: 135, name: '视频广告'},
{value: 1548, name: '搜索引擎'}
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
});
</script>
</head>
<body ng-controller="myCtrl">
<div class="container">
<e-chart option="option" force-render="width" style="height: 400px;"></e-chart>
<!-- <div ng-class="{true:'col-sm-12',false:'col-sm-6'}[width]">-->
<!-- <e-chart option="option" force-render="width" style="height: 400px;"></e-chart>-->
<!-- </div>-->
</div>
</body>
</html>