详解angular中使用echarts地图

 更新时间:2021年12月22日 16:09:33   作者:桐溪漂流  
这篇文章主要为大家介绍了angular中使用echarts地图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

在angular中使用echart的时候,只需要在对应的组件生命周期中调用echart的api就可以了

echart的初始化

在component的ngOnInit事件中进行echarts的初始化,配置option,然后echarts图表就生成了

app-base-chart组件

html

<div #chart [ngClass]="'chart-box ' + (!option ? 'empty-chart' : '')"></div>

css

// 基本的图表样式
.chart-box{
  font-weight: bold;
  border: 1px solid #dcdcdc;
  border-radius: 4px;
}
// option暂无的时候的样式
.empty-chart{
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 18px;
}
import { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { fromEvent, Subscription, timer } from 'rxjs';
import { debounceTime, tap } from 'rxjs/operators';
import { ECharts, EChartsOption, init } from 'echarts';
@Component({
  selector: 'app-base-chart',
  templateUrl: './base-chart.component.html',
  styleUrls: ['./base-chart.component.scss']
})
export class BaseChartComponent implements OnInit, OnDestroy {
  @Input() option: EChartsOption;
  @Input() height = '300px';
  @Input() width = '100%';
  @ViewChild('chart', { static: true }) chart: ElementRef;
  aChart: ECharts;
  windowResize: Subscription;
  timer: Subscription;
  defaultGrid = {
    top: 10,
    right: 10,
    bottom: 30,
    left: 30,
  };
  constructor() { }
  ngOnInit(): void {
    this.setListen();
    this.boxStyleInit();
    if (!!this.option) {
      this.echartsInit();
    }else{
      this.chart.nativeElement.innerText = '暂无数据';
    }
  }
  // 当组件销毁的时候,取消相关订阅
  ngOnDestroy(): void {
    if (this.windowResize) {
      this.windowResize.unsubscribe();
    }
    if (this.timer) {
      this.timer.unsubscribe();
    }
  }
  // 初始化容器的大小size
  boxStyleInit(): void {
    this.chart.nativeElement.style.width = this.width;
    this.chart.nativeElement.style.height = this.height;
  }
  // 设置window的resize事件监听,并重绘echarts的大小
  setListen(): void {
    this.windowResize = fromEvent(window, 'resize').pipe(
      debounceTime(200),
      tap(res => {
        this.aChart.resize();
      })
    ).subscribe();
  }
  // 根据option配置和生成echarts图表
  echartsInit(): void {
    this.aChart = init(this.chart.nativeElement);
    this.aChart.setOption(Object.assign({ grid: this.defaultGrid }, this.option));
    // 通过延时器进行echarts的大小重绘
    this.timer = timer(400).subscribe(res => {
      this.aChart.resize();
    });
  }
}

使用app-base-chart组件

<app-base-chart [option]="option" width="100%" height="300px" ></app-base-chart>

只需要在组件的html中像上面代码运用就可以,同时还可以配置height和width。option为echarts官方定义的option

这样其实就是简单封装了一个基本的echarts生成组件,所有的配置项都是echarts的

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 详解angular2采用自定义指令(Directive)方式加载jquery插件

    详解angular2采用自定义指令(Directive)方式加载jquery插件

    本篇文章主要介绍了详解angular2采用自定义指令(Directive)方式加载jquery插件 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • AngularJS ng-blur 指令详解及简单实例

    AngularJS ng-blur 指令详解及简单实例

    本文主要介绍AngularJS ng-blur 指令,这里对ng-blur 指令的知识详细介绍给大家,并给大家一个实例作为参考,有需要的小伙伴可以参考下
    2016-07-07
  • Angular 4.x中表单Reactive Forms详解

    Angular 4.x中表单Reactive Forms详解

    这篇文章主要介绍了Angular 4.x中表单Reactive Forms的相关资料,文中通过示例代码介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • 如何创建AngularJS 模块

    如何创建AngularJS 模块

    AngularJS是一个强大的前端框架,其模块化架构提供了高度的灵活性和可维护性,本文探讨了AngularJS中模块的概念,包括定义、用途及创建和配置方法,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • angular2路由切换改变页面title的示例代码

    angular2路由切换改变页面title的示例代码

    本篇文章主要介绍了angular2路由切换改变页面title的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Angular outlet实现页面布局示例详解

    Angular outlet实现页面布局示例详解

    这篇文章主要为大家介绍了Angular outlet实现页面布局示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • angular第三方包开发整理(小结)

    angular第三方包开发整理(小结)

    本篇文章主要介绍了angular第三方包开发整理(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • angularJS中router的使用指南

    angularJS中router的使用指南

    这篇文章主要介绍了angularJS中router的使用方法和示例分享,需要的朋友可以参考下
    2015-02-02
  • 分享Angular http interceptors 拦截器使用(推荐)

    分享Angular http interceptors 拦截器使用(推荐)

    AngularJS 是一个 JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。这篇文章主要介绍了分享Angular http interceptors 拦截器使用(推荐),需要的朋友可以参考下
    2019-11-11
  • 深入理解Angular4订阅(Subscribe)与取消

    深入理解Angular4订阅(Subscribe)与取消

    这篇文章主要介绍了深入理解Angular4订阅(Subscribe)与取消,详细的介绍了订阅与取消的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11

最新评论