Angular 2 和 TypeScript 是否可以使用 ECharts 百度
Is it possible to use ECharts Baidu with Angular 2 and TypeScript
我正在尝试在Angular 2 application (typescript)中实现EChart Baidu。
我正在按照他们网站上的入门指南进行操作 https://ecomfe.github.io/echarts/doc/start-en.html,但不知道应该如何初始化图表,因为我对这行代码的函数参数一无所知:
function (ec) {
var myChart = ec.init(document.getElementById('main'));
使用 Angular 2 我有 ngOnInit() 函数可以用作 jquery 的 $(document).ready().
我尝试使用纯 javasript 在单独的页面中实现 ECharts,并且工作正常。我什至有 HTML 主题 Limitless.
问题是我不知道如何从上面 Angular2.
中的代码中获取这个 'ec' 参数
如有任何帮助,我们将不胜感激!谢谢
所以,我找到了解决办法!
首先,您应该使用 echarts.js 库,它 不是 普通 js。我正在使用 this one which I have found here。请注意,前两个库是 common.js 和 common.min.js。他们使用 require 作为函数,但打字稿有自己的要求。这么乱是不行的,为了更清晰的解决方案,就用echarts的非通用js库。
在echarts.js文件所在的目录下,我创建了echarts.d.ts,只有一行代码:
export function init (elem: any);
然后,在我的 component.ts 文件中,我这样导入:
import * as echarts from 'path/to/echarts/jsfile'
您应该在没有 .js 扩展名的情况下导入!
之后,在我的 onInit 函数中,我只是这样做:
let basic_lines = echarts.init(document.getElementById(this.chartId));
其中 this.chartId 只是持有图表的 DOM 元素的 ID,basic_lines 是一个对象,我稍后会用选项填充它(就像中给出的示例一样)问题!
我希望这对某人有所帮助!
首先,通过npm安装echart
npm install --save echarts
其次,在你的组件中需要echart
const echarts = require('echarts');
然后,在 ngInit 函数中,应用您的代码
const selectDom = this.renderer.selectRootElement('#chart');
const myChart = charts.init(selectDom);
我用过:
import * as echarts from 'path/to/echarts/jsfile'
但是有错误
error TS2307: Cannot find module 'echarts'
最后,简单粗暴,我对机箱的要求是属性:
1.install 用于 echarts 的 npm 模块:
npm install echarts
2.defined一个属性为class:
export class AdvertReportComponent implements OnInit {
echarts: any = require('echarts')
ngOnInit(){
//set options;
var options= {...};
var chartView = this.echarts.init(this._chartElement.nativeElement);
chartView.setOption(options);
}
}
npm install --save echarts
npm install --save-dev @types/echarts
代码:
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();
}
}
}
运气:)
看看 angular2-echarts 图书馆。安装:
npm install echarts --save
npm install angular2-echarts --save
希望对您有所帮助!
npm install -S echarts
npm install -D @types/echarts
npm install -S ngx-echart --save
(新版本angular2-echarts
)
-D = --save-dev
-S = --save
在您的 .ts
文件中引用 @Ng
、@Component
/@Directive
。
拨入您的 pages
- 不要忘记检查您的 selector
!
import * as echarts from 'echarts';
(TS(Typescript)不是 JS 文件类型)
import { AngularModuleEcharts } from 'ngx-charts';
@TossPig 的代码工作正常。
我将 Ionic3 与 TS devDependencies 一起使用 ngx-echarts
。
将 Angular 指令转换为离子模块以供重用时遇到了一些问题。
查看 https://github.com/xieziyu/ngx-echarts and https://xieziyu.github.io/#/ngx-echarts/demo 作为 Angular 组件的代码结构和实现。
我正在尝试在Angular 2 application (typescript)中实现EChart Baidu。
我正在按照他们网站上的入门指南进行操作 https://ecomfe.github.io/echarts/doc/start-en.html,但不知道应该如何初始化图表,因为我对这行代码的函数参数一无所知:
function (ec) {
var myChart = ec.init(document.getElementById('main'));
使用 Angular 2 我有 ngOnInit() 函数可以用作 jquery 的 $(document).ready().
我尝试使用纯 javasript 在单独的页面中实现 ECharts,并且工作正常。我什至有 HTML 主题 Limitless.
问题是我不知道如何从上面 Angular2.
中的代码中获取这个 'ec' 参数如有任何帮助,我们将不胜感激!谢谢
所以,我找到了解决办法!
首先,您应该使用 echarts.js 库,它 不是 普通 js。我正在使用 this one which I have found here。请注意,前两个库是 common.js 和 common.min.js。他们使用 require 作为函数,但打字稿有自己的要求。这么乱是不行的,为了更清晰的解决方案,就用echarts的非通用js库。
在echarts.js文件所在的目录下,我创建了echarts.d.ts,只有一行代码:
export function init (elem: any);
然后,在我的 component.ts 文件中,我这样导入:
import * as echarts from 'path/to/echarts/jsfile'
您应该在没有 .js 扩展名的情况下导入!
之后,在我的 onInit 函数中,我只是这样做:
let basic_lines = echarts.init(document.getElementById(this.chartId));
其中 this.chartId 只是持有图表的 DOM 元素的 ID,basic_lines 是一个对象,我稍后会用选项填充它(就像中给出的示例一样)问题!
我希望这对某人有所帮助!
首先,通过npm安装echart
npm install --save echarts
其次,在你的组件中需要echart
const echarts = require('echarts');
然后,在 ngInit 函数中,应用您的代码
const selectDom = this.renderer.selectRootElement('#chart');
const myChart = charts.init(selectDom);
我用过:
import * as echarts from 'path/to/echarts/jsfile'
但是有错误
error TS2307: Cannot find module 'echarts'
最后,简单粗暴,我对机箱的要求是属性:
1.install 用于 echarts 的 npm 模块:
npm install echarts
2.defined一个属性为class:
export class AdvertReportComponent implements OnInit {
echarts: any = require('echarts')
ngOnInit(){
//set options;
var options= {...};
var chartView = this.echarts.init(this._chartElement.nativeElement);
chartView.setOption(options);
}
}
npm install --save echarts
npm install --save-dev @types/echarts
代码:
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();
}
}
}
运气:)
看看 angular2-echarts 图书馆。安装:
npm install echarts --save
npm install angular2-echarts --save
希望对您有所帮助!
npm install -S echarts
npm install -D @types/echarts
npm install -S ngx-echart --save
(新版本angular2-echarts
)
-D = --save-dev
-S = --save
在您的 .ts
文件中引用 @Ng
、@Component
/@Directive
。
拨入您的 pages
- 不要忘记检查您的 selector
!
import * as echarts from 'echarts';
(TS(Typescript)不是 JS 文件类型)
import { AngularModuleEcharts } from 'ngx-charts';
@TossPig 的代码工作正常。
我将 Ionic3 与 TS devDependencies 一起使用 ngx-echarts
。
将 Angular 指令转换为离子模块以供重用时遇到了一些问题。
查看 https://github.com/xieziyu/ngx-echarts and https://xieziyu.github.io/#/ngx-echarts/demo 作为 Angular 组件的代码结构和实现。