angular中怎么使用echarts

这是我第一写angular项目的时候写的文档现在重新整理一下分享出来

首先我们我们要有一个容器

<div e-chart e-data="option4" style=" height:335px"></div>

说明一下 e-chart表示自定义指令 e-data是我们要显示的数据(如下图中的$scope.option1)

e-data中的数据可以直接参考echarts官网的写法

这段数据是我在echarts官网找的

$scope.option1= {
    title : {
        text: '某站点用户访问来源',
        subtext: '纯属虚构',
        x:'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:'搜索引擎'}
            ],
            itemStyle: {
                emphasis: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
}

 这里就是创建自定指令

directive('eChart', ['$window',function($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);//设置数据到eChart中
                        window.addEventListener("resize", function () {
                            myChart.resize();//重绘
                        });
                    }
                }, true);
                $scope.getDom = function() {
                    return {
                        'height': element[0].offsetHeight,
                        'width': element[0].offsetWidth
                    };
                };
                $scope.$watch($scope.getDom, function() {
                    window.addEventListener("resize", function () {
                        myChart.resize();
                    });
                }, true);
            }
            return {
                restrict: 'A',
                link: link
            };
        }]);

不知道现在还有没有参考意义很久没写了(欢迎留言交流)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值