使用chart.js和插件chartjs-plugin-annotation时,注解不显示,而使用angular 5时,不显示错误消息。
我已经创建了一个精简的代码示例来展示问题
日志(图表插件)显示插件看起来注册为插件[3],但它没有一个ID,因为内置的,这是一个问题吗?
chart.component.ts
import { Component, Inject } from '@angular/core';
import { Chart } from 'chart.js';
import 'chartjs-plugin-annotation';
@Component({
selector: 'app-chart-component',
templateUrl: './chart.component.html'
})
export class ChartComponent {
public currentCount = 0;
chart : Chart ; // This will hold our chart info
simpleChart() {
console.log(Chart.plugins);
this.chart = new Chart('canvas', {
type: 'line',
data: {
labels: ['0','1','2', '3','4'],
datasets: [
{
data: [0,1,2,5,4,5],
borderColor: "#3cba9f",
fill: false,
},
]
},
options: {
legend: {
display: false
},
scales: {
xAxes: [{
display: true
}],
yAxes: [{
display: true,
id: 'y-axis-0'
},
]
},
plugins: {
annotation: {
annotations: [{
type: 'line',
id: 'hLine',
mode: 'horizontal',
scaleID: 'y-axis-0',
value: 2.5, // data-value at which the line is drawn
borderWidth: 2.5,
borderColor: 'black'
}]
}
}
}
});
}
ngOnInit() {
this.simpleChart();
}
}
如有任何帮助,我们将不胜感激。
5条答案
按热度按时间xzv2uavs1#
我有一些有趣的尝试让注解工作-如果你还没有解决它,试试这个...
将导入语句更改为:
将
ngOnInit()
更改为:最后,我认为注解对象应该是选项的子对象,而不是插件的子对象。
使一个漂亮的图形:)
(除了我得到了颜色低音ackwards!哎呀!)
ifmq2ha22#
作为Ade所说的一个补充。你也可以用这种方式添加插件
添加
{...} as ChartOptions
使得TypeScript不会抱怨pjngdqdw3#
对于任何有TypeScript错误的人来说,注解不是ChartOptions属性。在寻找了一两个星期的答案后,我找到了解决这个问题的方法。
请遵循以下路径:节点模块/@类型/Chart.js/索引.d.ts
打开index.d.ts,定位到界面ChartOptions {并添加这一行。annotation?:对象; }
这就是我如何解决我的问题后,每一个其他的解决方案失败。
pxiryf3j4#
我最近也有同样的问题,我用构造函数下的registerPlugin修复了它。
下面是我的解决方案:
1.将插件导入到您的组件:
1.将以下行添加到构造函数中:
1.如果您使用的是typescript,则可能需要使用注解来扩展ChartOptions接口:
1.使用注解配置图表选项
yyyllmsg5#
我知道我迟到了,但是,到目前为止(ng 2-charts 3.0.11),这些答案都不起作用,因为API已经改变了。注解配置现在必须在插件中。注解插件在使用之前必须注册。下面是我从示例中发现的:在应用模块ts中:
然后,在component.ts文件中: