微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当用户单击 donut chart.js 中的特定区域时,如何获取标签名称?我无法找到 chart.js 所选区域的索引

如何解决当用户单击 donut chart.js 中的特定区域时,如何获取标签名称?我无法找到 chart.js 所选区域的索引

我正在使用 chart.js、Laravel 5.4 和刀片模板。 我必须显示圆环图,当用户单击特定区域时,它应该在模式中显示所选标签名称和属于它的值,但首先当用户单击圆环图时我无法获得标签名称

<br>var bookings = {!! json_encode($bookings)  !!} ;
<br>var map={"confirmed":{"label":"Confirmed","color":"#4BC0C0"},"cancelled":{"label":"Cancelled","color":"#FFCD56"},"on_request":{"label":"On Request","color":"#FF6384"}}
 <br>@if($hasChart)
        <br>var labels=[],colors=[],numbers=[],hasChart=false;
        <br>for (var property in map) {
            <br>if(bookings[property].length>=0){
                <br>hasChart=true;
                        <br>labels.push(map[property]["label"]);
                        <br>colors.push(map[property]["color"]);
                          <br>numbers.push(bookings[property].length);
            }
        }        
 var ctx = document.getElementById('doughnut-chart').getContext('2d');
            <br>var chart = new Chart(ctx,{
                 <br>type: 'doughnut',<br>data: {
                     <br>labels: labels,<br>datasets: [
                         <br>{
                            backgroundColor: colors,data: numbers
                        }
                    ]
                 <br>},<br>options:  {                     
                    onClick: (e) => {
                          <br>//to do get value of selected label
                        <br>$('#bookingInfoModal').modal('show');                     
                    },<br>maintainAspectRatio: false,<br>elements: {
                         <br>arc: {
                            borderWidth: 0
                        }
                    },<br>
                     <br>plugins: {
                         <br>legend: {
                            display: true,position: "right",align: "end",padding: 50,labels: {
                                BoxWidth: 10,color: '#000000',},<br>},<br>});

解决方法

我明白了。它现在正在工作。

options: {
 onClick: (e,legend) => {
  console.log(legend[0].index);
  alert(chart.data.labels[legend[0].index]);
 },}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。