【问题标题】:angular2-highcharts Highcharts exporting moduleangular2-highcharts Highcharts 导出模块
【发布时间】:2016-08-03 11:37:14
【问题描述】:

如何将导出模块包含到 angular2 应用程序中?

我已尝试将以下脚本添加到 index.html,但没有任何反应。

<script src="http://code.highcharts.com/modules/exporting.js"></script>

【问题讨论】:

    标签: highcharts angular


    【解决方案1】:

    从 Angular CLI 1.0-RC.1 和最新的 angular2-highcharts 开始,这对我有用(关于推荐的解决方案https://github.com/gevgeny/angular2-highcharts/issues/156,另请参阅此持续讨论):

    npm install --save angular2-highcharts 
    npm install --save @types/highcharts
    

    在 typings.d.ts 中添加:declare var require: any;

    然后在 app.module.ts 中:

    import { ChartModule } from 'angular2-highcharts';
    import {HighchartsStatic} from 'angular2-highcharts/dist/HighchartsService';
    export function highchartsFactory() {
      var hc = require('highcharts');
      var hcm = require('highcharts/highcharts-more');
      var exp = require('highcharts/modules/exporting');
    
      hcm(hc);
      exp(hc);
      return hc;
    }
    
    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        FormsModule,
        HttpModule,
        ChartModule
      ],
      providers: [{provide: HighchartsStatic, useFactory: highchartsFactory}],
      bootstrap: [AppComponent]
    })
    export class AppModule { }
    

    早期版本的旧答案:

    如果你使用 angular-cli (webpack) 和 angular2-highcharts,这对我有用:

    import {Highcharts} from 'angular2-highcharts';
    require('highcharts/modules/exporting')(Highcharts);
    

    【讨论】:

    • 其实只需要:require('highcharts/modules/exporting')
    【解决方案2】:

    创建一个指令,HighchartsExporting,例如这里是 Highcharts 的一个:

    import {Directive, ElementRef, Input, OnDestroy} from '@angular/core';
    
    @Directive({
        selector: '[ng2-highcharts]',
        exportAs: 'ng2Highcharts'
    })
    export class Ng2Highcharts implements OnDestroy {
        hostElement: ElementRef;
        pChart: HighchartsChartObject;
        constructor(ele: ElementRef) {
            this.hostElement = ele;
        }
    
        @Input('ng2-highcharts') set options(opt: HighchartsOptions) {
            if (!opt) {
                console.log('No valid options...');
                console.log(opt);
                return;
            }
            if (opt.series || opt.data) {
                if (this.pChart) {
                    this.pChart.destroy();
                }
                if (!opt.chart) {
                    opt.chart = {};
                }
                opt.chart.renderTo = this.hostElement.nativeElement;
                this.pChart = new Highcharts.Chart(opt);
            } else {
                console.log('No valid options...');
                console.dir(opt);
            }
        }
    
    
        public get chart() : HighchartsChartObject {
            return this.pChart;
        }
    
        ngOnDestroy() {
            if (this.pChart) {
                this.pChart.destroy();
            }
        }
    }
    

    【讨论】:

    • 我认为这根本不能回答问题 - 这只是说明如何包含高图表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2011-12-10
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多