这是我的jsfiddle解释我面临的问题。我想基本上传递选项对象(以禁用填充和贝塞尔曲线),就像我在旧版本中可以做的那样...
https://jsfiddle.net/xjdvngwe/
基本上我想实现将选项传递给图表 图表创建时的功能
var options = { fill:false,tension:0, lineTension :0.1};
var chart_testChart = new Chart.Line(ctx,
{
data: data,
options: options
});
在最新版本2.1.6中,我无法使其工作
如果我这样传递它们,它们工作正常,但我正在寻找一种方法将它们作为选项对象传递
var data = {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [
{
label: "My First dataset",
fill: false,
lineTension: 0.1,
答案 0 :(得分:0)
这是因为你误解了图表的构建方式:
您认为fill
和tension
属性都直接位于选项的根目录中,但它们实际上位于options.element.line
中。
有关详细信息,请查看Chart.js文档,了解element configuration(滚动到行配置在您的情况下)。
<小时/> 但要小心!!不要混淆:
通过编辑传递给图表数据的数据集,编辑一个元素(在问题的第二部分中设法做的):
datasets: [
{
label: "My First dataset",
fill: false,
lineTension: 0.1,
// ...
}]
通过编辑图表选项编辑相同类型的所有元素(此处,折线图):
var options = { elements: { line: { /*options */ } } };
正如我在上面提到的documentation所述:
可以为四种不同类型的元素配置选项;弧,线,点和矩形。 设置后,这些选项适用于该类型的所有对象,除非被附加到数据集的配置明确覆盖。
因此,在选项中直接编辑这些属性之前,请确保您确实要编辑所有折线图。
<小时/> 现在,如果您仍想在选项中进行编辑,则必须构建
options
var,如下所示:
var options = { elements: { line: { fill: false, tension: 0.1 } } };
var chart_testChart = new Chart.Line(ctx,
{
data: data,
options: options
});
如果您想查看结果,请输入working fiddle。