angular封装echarts

本文介绍了在Angular1.x项目中,由于官方推荐的基于Angular的ECharts库API不够友好,作者选择放弃使用并转向自定义指令进行封装。通过自定义指令的方式,作者实现了更直观和简单的ECharts柱状图指令封装,以适应项目的可视化监控需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  echarts的官网推荐了几个基于angular的库,可能只是作者在实际开发中为了完善自己的项目而封装的,api不是那么友好,因为我的项目需要可视化的监控信息,而项目又是基于比较老的angular1.x,所以下面的这几个我只研究了第一个
这里写图片描述
  当然在项目里也是可以使用,但是因为api又进行了二次封装,很多的属性设置的时候不能直接从官网的api继承而来,使用起来很不方便,所以研究了一上午之后还是放弃了,转而自己封装自定义指令,后来发现其实封装自定义指令的方式更加直观和简单,我这个项目用的是官网common版本作为项目依赖。
  首先是我的页面,因为是演示,所以data和define-option的值暂且不传(.jade)
这里写图片描述
  接下来是我的echarts-bar.coffee文件,开始考虑过将常用的line,bar,pie,也就是折线图,柱状图和饼图封装成一个指令,但是为了更好的分离,我还是选择了分开封装,这里演示的是柱形图指令的封装

angular.module('zyClient.directives')
.directive('echartsBar', ['$timeout',($timeout)->
  return {
    restrict : 'AE'
    replace : true
    template: '<div id="echartdiv" style="width: 100%; height: 400px;"></div>',
    scope:
      data: '='
      defineOption: '='
    link: ($scope,$element,$attr) ->
      # echartElement = $('#echartdiv')[0]
      echartElement = $($element)[0]
      echartsEle = echarts.init(echartElement)

      option= 
        title: {
          text: 'Echarts'
        },
        tooltip: {},
        legend: {
          data:['销量']
        },
        xAxis: {
          data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
        },
        yAxis: {},
        series: [{
          name: '销量',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
        }]

      echartsEle.setOption(option)
  }
])

  到这一步其实最基本的指令已经封装完成,后续接口有数据的时候将data和defineOption的值传入link函数,根据传入的值去设置指令的option就可以了。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值