2016-05-11 10 views
14

Próbuję użyć tabeli donut z wieloma zestawami danych, a także użyj funkcji tooltipTemplate, aby dostosować test wewnątrz etykiet narzędzi, ale nic nie działa. To działało w poprzedniej wersji Chart js, ale nie obsługuje wielu zestawów danych. Czy ktoś może pomóc? Poniżej jest mój kod ..Jak korzystać z tooltipTemplate na Chart.JS 2.0

options: { 
    tooltips: { 
     tooltipTemplate: "<%if (label){%><%=value%><%} else {%> No data <%}%>", 
    }, 
} 
+4

Musisz użyć 'callbacks.label'. Zobacz przykład: http://stackoverflow.com/questions/37158477/where-put-multitooltiptemplate-in-chat-js-v2-x. – potatopeelings

Odpowiedz

22

Jak potatopeelings wspomniał w komentarzach, musisz ustawić wywołania zwrotnego dla podpowiedzi.

Oto przykład:

options: { 
    tooltips: { 
    callbacks: { 
     label: function(tooltipItem, data) { 
     var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other'; 
     var label = data.labels[tooltipItem.index]; 
     return datasetLabel + ': ' + label; 
     } 
    } 
    } 
} 

demo na żywo

var ctx = document.getElementById("myChart"); 
 
var myChart = new Chart(ctx, { 
 
    type: 'doughnut', 
 
    data: { 
 
     labels: ["Men", "Women", "Unknown"], 
 
     datasets: [{ 
 
      label: 'Sweden', 
 
      data: [60, 40, 20], 
 
      backgroundColor: ['rgba(158, 216, 202, 0.75)', 'rgba(255, 150, 162, 0.75)', 'rgba(160, 160, 160, 0.75)'] 
 
     }, { 
 
      label: 'Netherlands', 
 
      data: [40, 70, 10], 
 
      backgroundColor: ['rgba(158, 216, 202, 0.5)', 'rgba(255, 150, 162, 0.5)', 'rgba(160, 160, 160, 0.5)'] 
 
     }, { 
 
      data: [33, 33, 34], 
 
      backgroundColor: ['rgba(158, 216, 202, 0.25)', 'rgba(255, 150, 162, 0.25)', 'rgba(160, 160, 160, 0.25)'] 
 
     }] 
 
    }, 
 
    options: { 
 
     tooltips: { 
 
      callbacks: { 
 
       label: function(tooltipItem, data) { 
 
        var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other'; 
 
        var label = data.labels[tooltipItem.index]; 
 
        return datasetLabel + ': ' + label; 
 
       } 
 
      } 
 
     } 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.2/Chart.min.js"></script> 
 
<canvas id="myChart" width="400" height="200"></canvas>

+1

nie rozwiązuje to głównego problemu – Machado

8

Chart.js 1.x tooltipsTemplate jest równoważna options.tooltips.callbacks.title w Chart.js 2.x :

var ctx = document.getElementById("myChart"); 
 

 
var myChart = new Chart(ctx, { 
 
    type: 'doughnut', 
 
    data: { 
 
    labels: [ 
 
     "Men", 
 
     "Women", 
 
     "Unknown" 
 
    ], 
 
    datasets: [{ 
 
     label: 'Sweden', 
 
     data: [60, 40, 20], 
 
     backgroundColor: [ 
 
     'rgba(158, 216, 202, 0.75)', 
 
     'rgba(255, 150, 162, 0.75)', 
 
     'rgba(160, 160, 160, 0.75)' 
 
     ] 
 
    }, { 
 
     label: 'Netherlands', 
 
     data: [40, 70, 10], 
 
     backgroundColor: [ 
 
     'rgba(158, 216, 202, 0.5)', 
 
     'rgba(255, 150, 162, 0.5)', 
 
     'rgba(160, 160, 160, 0.5)' 
 
     ] 
 
    }, { 
 
     data: [33, 33, 34], 
 
     backgroundColor: [ 
 
     'rgba(158, 216, 202, 0.25)', 
 
     'rgba(255, 150, 162, 0.25)', 
 
     'rgba(160, 160, 160, 0.25)' 
 
     ] 
 
    }] 
 
    }, 
 
    options: { 
 
    tooltips: { 
 
     callbacks: { 
 
     label: function(tooltipItem, data) { 
 
       return 'This value ' + tooltipItem.yLabel; 
 
     }, 
 
     title: function(tooltipItem, data) { 
 
      return 'The tooltip title ' + tooltipItem[0].xLabel; 
 
     } 
 
     } 
 
    } 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.2/Chart.min.js"></script> 
 

 
<canvas id="myChart" width="400" height="200"></canvas>

0

Musisz ustawić options dla podpowiedzi mode do label za pokazanie wielu podpowiedź

options: { 
    tooltips: { 
     mode : 'label' 
    } 
} 
Powiązane problemy