内联插件不起作用

时间:2017-06-01 13:08:56

标签: chart.js chart.js2

根据Chart.js docs,以下代码应该有效:

new Chart(document.getElementById(chartID), {
   type: 'pie',
   responsive: true,
   maintainAspectRatio: false,
   data: {
      labels: graph.globals.labels,
      datasets: [{
         backgroundColor: pieOptions.backgrounds,
         data: pieOptions.objToArr(graph.meetingsData),
         hoverBorderWidth: 5,
         borderColor: 'transparent',
      }]
   },
   options: {
      title: {
         display: true,
         text: graph.globals.title,
      },
      legend: {
         display: true,
         position: 'bottom',
         fullWidth: false,
         onClick: () => {},
         labels: {
            generateLabels: (chart) => {
               return pieOptions.legendLeft(chart);
            }
         }
      },
      plugins: [{
         beforeInit: function(chart, options) {
            console.log('yolo');
         }
      }]
      rotation: 3.9,
   }
});

但是,当我使用变量创建插件时,或者如上所示以内联方式创建插件时,它不会记录任何内容。我可以使用插件的唯一方法是在全球注册时。

有人可以向我解释为什么它不起作用吗?

1 个答案:

答案 0 :(得分:2)

plugins 应放在自己的配置部分,而不是嵌套在 options





而不是:




 选项:{
标题:{
 display:true,
 text:graph.globals.title,
 },
传说:{
 display:true,
位置:'底部',
 fullWidth:false,
 onClick :()=> {},
标签:{
 generateLabels :( chart)=> {
 return pieOptions.legendLeft(chart);
 }
 }
 },
插件:[{
 beforeInit:function(chart,options){
的console.log( 'YOLO');
 }
 }]
轮换:3.9,
}
  




您的代码应如下所示:




 选项:{
标题:{
 display:true,
 text:graph.globals.title,
 },
传说:{
 display:true,
位置:'底部',
 fullWidth:false,
 onClick :()=> {},
标签:{
 // generateLabels :( chart)=> {
 // return pieOptions.legendLeft(chart);
 //}
 }
 },
轮换:3.9,
},
插件:[{
 beforeInit:function(chart,options){
的console.log( 'YOLO');
 }
}]
  




使用JSFiddle: https://jsfiddle.net/r1x63b8v/