Angular + Ng2 图表:图表未显示为子组件
Angular + Ng2 Charts: Chart not displaying as Child Component
我正在尝试通过 Angular 学习 ng2-charts 以及我目前正在从事的项目。
所以基本上,我首先尝试了一个新的 angular 项目,安装了 ng2-charts
npm i ng2-charts chart.js
我试图通过将数据传递给子组件来实现它。
现在我想知道为什么我的图表(子组件)没有显示任何东西。
代码是这样的。
图表组件 // 样本-chart.component.ts
import { Component, Input, OnInit } from "@angular/core";
@Component({
selector: "app-sample-chart",
templateUrl: "./sample-chart.component.html",
styleUrls: ["./sample-chart.component.css"],
})
export class SampleChartComponent implements OnInit {
@Input() barChartData;
@Input() barChartLabels;
@Input() barChartOptions;
@Input() barChartPlugins;
@Input() barChartLegend;
@Input() barChartType;
constructor() {}
ngOnInit() {
console.log(this.barChartData, "data");
}
}
图表组件 // 示例-chart.component.html
<canvas
baseChart
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[plugins]="barChartPlugins"
[legend]="barChartLegend"
[chartType]="barChartType"
>
</canvas>
App 组件 // .ts 文件
import { Component } from "@angular/core";
import { ChartOptions, ChartType, ChartDataSets } from "chart.js";
import { Label } from "ng2-charts";
@Component({
selector: "app-root",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"],
})
export class AppComponent {
title = "app";
public barChartOptions: ChartOptions = {
responsive: true,
// We use these empty structures as placeholders for dynamic theming.
scales: { xAxes: [{}], yAxes: [{}] },
plugins: {
datalabels: {
anchor: "end",
align: "end",
},
},
};
public barChartLabels: Label[] = [
"2006",
"2007",
"2008",
"2009",
"2010",
"2011",
"2012",
];
public barChartType: ChartType = "bar";
public barChartLegend = true;
public barChartData: ChartDataSets[] = [
{ data: [65, 59, 80, 81, 56, 55, 40], label: "Series A" },
{ data: [28, 48, 40, 19, 86, 27, 90], label: "Series B" },
];
}
应用程序组件 // .html 文件
<div style="text-align: center">
<h1>Welcome to {{ title }}!</h1>
<div style="display: block">
<app-sample-chart
[barChartData]="barChartData"
[barChartLabels]="barChartLabels"
[barChartOptions]="barChartOptions"
[barChartPlugins]="barChartPlugins"
[barChartLegend]="barChartLegend"
[barChartType]="barChartType"
>
</app-sample-chart>
</div>
<!-- <router-outlet></router-outlet> -->
</div>
这是相关的版本。
使用的 Chart & ng2-charts 版本
"@angular/core": "^6.0.3",
"chart.js": "^2.9.4",
"ng2-charts": "^2.4.2",
我做错了什么吗?有什么建议吗?
你能试试下面的代码吗?
样本-chart.component.html
<div style="display: block;">
<canvas
baseChart
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[plugins]="barChartPlugins"
[legend]="barChartLegend"
[chartType]="barChartType"
>
</canvas>
</div>
您忘记添加显示块div。你能在你的 chart.component.html
中试试这个吗
我正在尝试通过 Angular 学习 ng2-charts 以及我目前正在从事的项目。
所以基本上,我首先尝试了一个新的 angular 项目,安装了 ng2-charts
npm i ng2-charts chart.js
我试图通过将数据传递给子组件来实现它。 现在我想知道为什么我的图表(子组件)没有显示任何东西。
代码是这样的。
图表组件 // 样本-chart.component.ts
import { Component, Input, OnInit } from "@angular/core";
@Component({
selector: "app-sample-chart",
templateUrl: "./sample-chart.component.html",
styleUrls: ["./sample-chart.component.css"],
})
export class SampleChartComponent implements OnInit {
@Input() barChartData;
@Input() barChartLabels;
@Input() barChartOptions;
@Input() barChartPlugins;
@Input() barChartLegend;
@Input() barChartType;
constructor() {}
ngOnInit() {
console.log(this.barChartData, "data");
}
}
图表组件 // 示例-chart.component.html
<canvas
baseChart
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[plugins]="barChartPlugins"
[legend]="barChartLegend"
[chartType]="barChartType"
>
</canvas>
App 组件 // .ts 文件
import { Component } from "@angular/core";
import { ChartOptions, ChartType, ChartDataSets } from "chart.js";
import { Label } from "ng2-charts";
@Component({
selector: "app-root",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"],
})
export class AppComponent {
title = "app";
public barChartOptions: ChartOptions = {
responsive: true,
// We use these empty structures as placeholders for dynamic theming.
scales: { xAxes: [{}], yAxes: [{}] },
plugins: {
datalabels: {
anchor: "end",
align: "end",
},
},
};
public barChartLabels: Label[] = [
"2006",
"2007",
"2008",
"2009",
"2010",
"2011",
"2012",
];
public barChartType: ChartType = "bar";
public barChartLegend = true;
public barChartData: ChartDataSets[] = [
{ data: [65, 59, 80, 81, 56, 55, 40], label: "Series A" },
{ data: [28, 48, 40, 19, 86, 27, 90], label: "Series B" },
];
}
应用程序组件 // .html 文件
<div style="text-align: center">
<h1>Welcome to {{ title }}!</h1>
<div style="display: block">
<app-sample-chart
[barChartData]="barChartData"
[barChartLabels]="barChartLabels"
[barChartOptions]="barChartOptions"
[barChartPlugins]="barChartPlugins"
[barChartLegend]="barChartLegend"
[barChartType]="barChartType"
>
</app-sample-chart>
</div>
<!-- <router-outlet></router-outlet> -->
</div>
这是相关的版本。
使用的 Chart & ng2-charts 版本
"@angular/core": "^6.0.3",
"chart.js": "^2.9.4",
"ng2-charts": "^2.4.2",
我做错了什么吗?有什么建议吗?
你能试试下面的代码吗?
样本-chart.component.html
<div style="display: block;">
<canvas
baseChart
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[plugins]="barChartPlugins"
[legend]="barChartLegend"
[chartType]="barChartType"
>
</canvas>
</div>
您忘记添加显示块div。你能在你的 chart.component.html
中试试这个吗