如何在角度图表中的自定义工具提示中使用HTML?

时间:2016-08-30 10:32:44

标签: angularjs angular-chart chart.js

是否可以使用角度图1.0在图表上的工具提示中呈现HTML? 我已经构建了下面的图表,但是需要在工具提示中的不同行上渲染两个值,但是br标记显示为文本

<div ng-app="doughnutApp" ng-controller="DoughnutCtrl as doughnutCtrl">
  <canvas id="doughnut" 
          class="chart chart-doughnut" 
          chart-data="doughnutCtrl.labelsValues.values" 
          chart-labels="doughnutCtrl.labelsValues.labels" 
          chart-options="doughnutCtrl.chartOptions">
  </canvas>
</div>

<script>
  var app = angular.module('doughnutApp', ['chart.js']);
  app.controller('DoughnutCtrl', function() {
    var vm = this;
    vm.labelsValues = {
      "labels": ["Label 1", "Label 2", "Label 3", "Label 4", "Label 5", "Label 6", "Label 7", "Label 8"],
      "values": [1, 2, 3, 4, 5, 6, 7, 8]
    };

    vm.chartOptions = {
      tooltips: {
        callbacks: {
          label: function(tooltipItem, data) {
            return "Line 1<br/>Line 2";
          }
        }
      }
    };
  });
</script>

此处的工作人员:http://plnkr.co/jtOM2PIccrb87wmFZc0p

一种解决方法是在&#34;标签&#34;中添加一行。回调和另一个&#34; beforeLabel&#34;回调,但仍然不会渲染颜色,字体样式等

1 个答案:

答案 0 :(得分:2)

你应该使用一个数组来模拟&#34;模拟&#34;新行:

tooltips: {
    //mode: "label",
    callbacks: {
        label: function(tooltipItem, data) {
            var legend = new Array();
            for(var i in data.datasets){
                legend.push(
                    data.datasets[i].label + ": " + parseFloat(data.datasets[i].data[tooltipItem.index])
                );
            }

            return legend;
        }
    }
},