zoukankan      html  css  js  c++  java
  • use ECharts with Angular 2 and TypeScript

    https://stackoverflow.com/questions/38158318/is-it-possible-to-use-echarts-baidu-with-angular-2-and-typescript

    npm install --save echarts
    npm install --save-dev @types/echarts

    code

    import {
      Directive, ElementRef, Input, OnInit, HostBinding, OnChanges, OnDestroy
    } from '@angular/core';
    
    import {Subject, Subscription} from "rxjs";
    
    import * as echarts from 'echarts';
    import ECharts = echarts.ECharts;
    import EChartOption = echarts.EChartOption;
    
    
    @Directive({
      selector: '[ts-chart]',
    })
    export class echartsDirective implements OnChanges,OnInit,OnDestroy {
      private chart: ECharts;
      private sizeCheckInterval = null;
      private reSize$ = new Subject<string>();
      private onResize: Subscription;
    
      @Input('ts-chart') options: EChartOption;
    
      @HostBinding('style.height.px')
      elHeight: number;
    
      constructor(private el: ElementRef) {
        this.chart = echarts.init(this.el.nativeElement, 'vintage');
      }
    
    
      ngOnChanges(changes) {
        if (this.options) {
          this.chart.setOption(this.options);
        }
      }
    
      ngOnInit() {
        this.sizeCheckInterval = setInterval(() => {
          this.reSize$.next(`${this.el.nativeElement.offsetWidth}:${this.el.nativeElement.offsetHeight}`)
        }, 100);
        this.onResize = this.reSize$
          .distinctUntilChanged()
          .subscribe((_) => this.chart.resize());
    
        this.elHeight = this.el.nativeElement.offsetHeight;
        if (this.elHeight < 300) {
          this.elHeight = 300;
        }
      }
    
    
      ngOnDestroy() {
        if (this.sizeCheckInterval) {
          clearInterval(this.sizeCheckInterval);
        }
        this.reSize$.complete();
        if (this.onResize) {
          this.onResize.unsubscribe();
        }
      }
    }
  • 相关阅读:
    python邮件之附件
    python3.5之smtp
    一台Linux上搭建两个tomcat
    mysql 初探(一)
    python监视mysql最大连接数
    P3658 [USACO17FEB]Why Did the Cow Cross the Road III P cdq分治
    P4793 [AHOI2008]矩形藏宝地 cdq分治 线段树
    P2487 [SDOI2011]拦截导弹 线段树 cdq分治
    P3157 [CQOI2011]动态逆序对 cdq分治
    P4169 [Violet]天使玩偶/SJY摆棋子 cdq分治
  • 原文地址:https://www.cnblogs.com/dhcn/p/7719034.html
Copyright © 2011-2022 走看看