绘图工具 - Angular2
Graphing tools - Angular2
我对 Web 应用程序还比较陌生,因此才刚刚开始使用 Angular2(尚未使用 angularJS)和 Typescript。我正在尝试使用 Zingchart 绘制图表。我经历了 5 分钟的快速入门以及 angular2 页面中的教程,并对它的工作原理有了一个不错的了解。我按照 Zingchart 页面上的说明使用这两个工具 (https://blog.zingchart.com/2016/03/16/angular-2-example-zingchart/) 在网页上创建了一个图表。但是,我似乎遇到了问题。
1) 我无法从@angular/core 导入 AfterView。尽管页面上说我必须使用 angular2/core,但我使用 @angular/core 作为从中导入模块的源文件夹。 angular2/core 未被识别。
2) 当有函数绑定到zingchart 对象时(例如- zingchart.render(), zingchart.exec()),会出现找不到zingchart 的错误。我也不知道这里出了什么问题。
import { Component, NgZone, AfterViewInit, OnDestroy } from '@angular/core';
class Chart {
id: String;
data: Object;
height: any;
width: any;
constructor(config: Object) {
this.id = config['id'];
this.data = config['data'];
this.height = config['height'] || 300;
this.width = config['width'] || 600;
}
}
@Component({
selector : 'zingchart',
inputs : ['chart'],
template : `
<div id='{{chart.id}}'></div>
`
})
class ZingChart implements AfterViewInit, OnDestroy {
chart : Chart;
constructor(private zone:NgZone) {
}
ngAfterViewInit() {
this.zone.runOutsideAngular(() => {
zingchart.render({
id : this.chart['id'],
data : this.chart['data'],
width : this.chart['width'],
height: this.chart['height']
});
});
}
ngOnDestroy() {
zingchart.exec(this.chart['id'], 'destroy');
}
}
//Root Component
@Component({
selector: 'my-app',
directives: [ZingChart],
template: `
<zingchart *ngFor="#chartObj of charts" [chart]='chartObj'></zingchart>
`,
})
export class App {
charts : Chart[];
constructor() {
this.charts = [{
id : 'chart-1',
data : {
type : 'line',
series : [{
values :[2,3,4,5,3,3,2]
}],
},
height : 400,
width : 600
}]
}
}
坦白说,我是 ZingChart 团队的一员。
1)"I am not able to import AfterView from @angular/core. Although the page says that I must be using angular2/core I am using @angular/core as the source folder"
由于不遵守 blog post 的说明,您在编写此 post 时破坏了 Angular 2 的语法。用于导入函数及其名称的 Angular 2 语法从 2.0.0 beta 9(编写此版本的版本)和 2.0.0 RC0(我假设您使用的最低版本)发生了变化。如果您想像我们一样使用现有代码,则必须使用我们编写的 import
语句和我们使用的 Angular 2 版本 (2.0.0 beta 9)。
我们正在为 Angular 2.0.0 RC4 编写更新的博客 post,其中将包括如何使用您所说的新 @angular
符号正在尝试导入
2)
对于事件绑定,在另一个 Whosebug post .
上有很好的解释
我对 Web 应用程序还比较陌生,因此才刚刚开始使用 Angular2(尚未使用 angularJS)和 Typescript。我正在尝试使用 Zingchart 绘制图表。我经历了 5 分钟的快速入门以及 angular2 页面中的教程,并对它的工作原理有了一个不错的了解。我按照 Zingchart 页面上的说明使用这两个工具 (https://blog.zingchart.com/2016/03/16/angular-2-example-zingchart/) 在网页上创建了一个图表。但是,我似乎遇到了问题。 1) 我无法从@angular/core 导入 AfterView。尽管页面上说我必须使用 angular2/core,但我使用 @angular/core 作为从中导入模块的源文件夹。 angular2/core 未被识别。 2) 当有函数绑定到zingchart 对象时(例如- zingchart.render(), zingchart.exec()),会出现找不到zingchart 的错误。我也不知道这里出了什么问题。
import { Component, NgZone, AfterViewInit, OnDestroy } from '@angular/core';
class Chart {
id: String;
data: Object;
height: any;
width: any;
constructor(config: Object) {
this.id = config['id'];
this.data = config['data'];
this.height = config['height'] || 300;
this.width = config['width'] || 600;
}
}
@Component({
selector : 'zingchart',
inputs : ['chart'],
template : `
<div id='{{chart.id}}'></div>
`
})
class ZingChart implements AfterViewInit, OnDestroy {
chart : Chart;
constructor(private zone:NgZone) {
}
ngAfterViewInit() {
this.zone.runOutsideAngular(() => {
zingchart.render({
id : this.chart['id'],
data : this.chart['data'],
width : this.chart['width'],
height: this.chart['height']
});
});
}
ngOnDestroy() {
zingchart.exec(this.chart['id'], 'destroy');
}
}
//Root Component
@Component({
selector: 'my-app',
directives: [ZingChart],
template: `
<zingchart *ngFor="#chartObj of charts" [chart]='chartObj'></zingchart>
`,
})
export class App {
charts : Chart[];
constructor() {
this.charts = [{
id : 'chart-1',
data : {
type : 'line',
series : [{
values :[2,3,4,5,3,3,2]
}],
},
height : 400,
width : 600
}]
}
}
坦白说,我是 ZingChart 团队的一员。
1)"I am not able to import AfterView from @angular/core. Although the page says that I must be using angular2/core I am using @angular/core as the source folder"
由于不遵守 blog post 的说明,您在编写此 post 时破坏了 Angular 2 的语法。用于导入函数及其名称的 Angular 2 语法从 2.0.0 beta 9(编写此版本的版本)和 2.0.0 RC0(我假设您使用的最低版本)发生了变化。如果您想像我们一样使用现有代码,则必须使用我们编写的 import
语句和我们使用的 Angular 2 版本 (2.0.0 beta 9)。
我们正在为 Angular 2.0.0 RC4 编写更新的博客 post,其中将包括如何使用您所说的新 @angular
符号正在尝试导入
2)
对于事件绑定,在另一个 Whosebug post