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();
        }
      }
    }
  • 相关阅读:
    Android Studio 打包生成apk
    找水王
    关于搜狗输入法的用户体验评价
    c语言函数的嵌套使用和矩阵运算
    人月神话阅读笔记02
    第一阶段冲刺意见评论汇总
    高校表白App-团队冲刺第十天
    高校表白App-团队冲刺第九天
    高校表白App-团队冲刺第八天
    人月神话阅读笔记01
  • 原文地址:https://www.cnblogs.com/dhcn/p/7719034.html
Copyright © 2011-2022 走看看